我已经花了一整天的时间来解决这个问题,但还没有运气。在我的项目中,我在通用属性页上将使用 ATL 属性设置为静态链接到 ATL,并在代码生成属性页( 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
谢谢!