gpt4 book ai didi

c++ - 即使选择了指向 ATL 的静态链接,Atl71.dll 依赖性仍然存在

转载 作者:太空宇宙 更新时间:2023-11-04 14:28:31 25 4
gpt4 key购买 nike

我已经花了一整天的时间来解决这个问题,但还没有运气。在我的项目中,我在 General 属性页上将 Use of ATL 属性设置为 Static Link to ATL 并设置了 Runtime 代码生成 属性页(C/C++ 文件夹)上的库 属性到多线程(/MT)。然而 DependencyWalker 仍然显示 Atl71.dll 依赖。

我用谷歌搜索并找到了这个页面 http://www.eggheadcafe.com/forumarchives/vcatl/Mar2006/post26077463.asp解决方案是在 atlbase.h 之后添加 atlwin.h。该解决方案确实有助于减少对 atl71.dll 的依赖。然而,它引入了一个新问题,即 CreateWindow 无法正常工作。

  // Creates the Web Browser control and navigates to the 
// specified web page.
HWND hWnd = ::CreateWindow("AtlAxWin", "http://www.microsoft.com",
WS_CHILD|WS_VISIBLE, 10, 10, 500, 300, hParent, NULL,
::GetModuleHandle(NULL), NULL);

hwnd 为 NULL。

所以添加atlwin.h的解决方案不能用了,不知道有没有人遇到过类似的静态链接问题?如何解决?

环境:VS 2003 .Net

谢谢!

最佳答案

我在从 Visual Studio 6 升级到 2005 时发现了类似的问题。解决方法是在窗口类名称中包含版本号,所以在我的例子中它看起来像这样:

hwndControl = ::CreateWindow("AtlAxWin80", ...);

因此对于 Visual Studio 2003,您可能会发现:

hwndControl = ::CreateWindow("AtlAxWin71", ...);

有效。

(在更基本的层面上,您是在调用 AtlAxWinInit() 吗?)

关于c++ - 即使选择了指向 ATL 的静态链接,Atl71.dll 依赖性仍然存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1270687/

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