编译Visual c++ DLL时出现奇怪错误
Strange error when compiling Visual C++ DLL
我尝试在Visual c++ 2010中编译一个骨架DLL。我禁用了预编译的头(我有理由这样做),并使用一个函数编译DLL。但是,在dllmain.cpp文件上编译失败,出现如下错误:
microsoft visual studio 10.0vcincludecstring(18): error C2039: 'memchr' : is not a member of '`global namespace''
我的dllmain.cpp代码如下:
// dllmain.cpp : Defines the entry point for the DLL application.
#include <Windows.h>
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
对我来说,它看起来像这段代码从来没有调用任何字符串相关的函数,那么为什么Visual c++访问CString在编译期间,为什么它搜索memchr函数?日志中的编译器命令行如下:
CL.exe /c /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _WINDOWS /D _USRDLL /D MYDLL_EXPORTS /D _WINDLL /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\" /Fd"Debugvc100.pdb" /Gd /TP /analyze- /errorReport:prompt dllmain.cpp
如果您对这些问题感到困惑,请查看预编译的输出并查看.i文件中的错误位置。您可能会发现某些宏的影响,或者包含丢失或意外的包含被拾取。
一个较轻的版本是在c++/advanced中打开'show includes'
相关文章:
- Visual Studio mkl_link_tool.exe链接错误
- 尝试使用继承和模板实现CRTP.Visual Studio正在生成编译器错误
- 设置 Visual Studio for MPI: 找不到标识符错误
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- 第三方 API 中的编译错误 - Visual Studio
- 在函数中使用 const int size 参数创建数组会在 Visual Studio 中抛出错误 C++:表达式的计
- 使用Visual Studio在虚幻引擎中创建一个新的类c ++给了我太多的错误
- Visual Studio 2019在内置库中存在错误
- 内部编译器错误Visual Studio Community 2017与SFML API
- 交叉编译错误 Visual Studio C++
- 默认参数值错误 [Visual C++ 2008 中的错误?
- 什么是 ?和 @ 符号演示此编译器错误?- Visual Studio 2013 Compiler.
- 错误:Visual Studio中没有为opencv_world310.dll加载符号
- 未处理的异常错误 Visual Studio 2012 和 Allegro 4
- 危险的错误 Visual c++ 2005
- c++链接器错误(Visual Studio c++ 2010)
- 如何修复msvcp120 .dll错误Visual Studio 2015
- libpng错误:读取错误(Visual Studio 2010)
- 未处理的异常错误visual studio 2010 c++ (open gl)
- 使用不在根项目目录上的源文件(包括在搜索路径中的文件)时发生链接错误(Visual C++)