gpt4 book ai didi

c++ - 如何防止不同插件中出现重复的资源 ID?

转载 作者:行者123 更新时间:2023-11-30 02:11:11 26 4
gpt4 key购买 nike

在MFC C++中,当我们在EXE中添加一个新的资源,比如字符串,它会自动生成一个ID:

#define ID_SHOW_OUTPUT                 10313

当它有一个具有相似ID的插件(DLL)时,触发后会导致未定义的行为。

为了安全起见,我尝试定义了我自己的私有(private) ID:

#define ID_SHOW_OUTPUT          (WM_APP+6)

但是,如果EXE和DLL中有数百个资源,我的工作量会很大。

我不确定是否有更好的解决方案和预防跨可执行文件的重复资源 ID???

最佳答案

  • 检查 this add-in .它使您可以更好地控制资源 ID。

  • 正如 Luke 所说,使用具有重复资源 ID 的 DLL 应该没有问题。使用 AfxSetResourceHandle 一次只有一个资源模块处于事件状态

  • 将命令 ID 设置为任意 UINT 值(在您的问题中,您将 WM_APP + 6 分配给命令 ID)是不安全的,因为这些值由MFC 在很多地方。检查this有关更多详细信息的 StackOverflow 问题。

关于c++ - 如何防止不同插件中出现重复的资源 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3785096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com