在x64上最新版本的Visual c++上,LoadLibrary返回193

LoadLibrary return 193 on newest version of Visual C++ on x64

本文关键字:LoadLibrary 返回 c++ x64 最新版 新版本 Visual      更新时间:2023-10-16

我有LoadLibrary(加载dll库)的问题,从Visual c++ 2008迁移到Visual c++ 2012后发生问题。

当我尝试在我的dll上使用LoadLibrary时,我有一个错误(GetLastError返回193),这是奇怪的,因为在旧的视觉中,相同的dll没有问题(在两个视觉上都设置了x64)。

193是ERROR_BAD_EXE_FORMAT,这意味着您试图加载的DLL或其依赖项之一不是有效的可执行文件,或者可能是32位可执行文件。所以你可能在你的构建中有一些错误的配置。

你可以使用Dependency Viewer之类的工具来检查可执行文件是否匹配。

编辑:这是14001的描述:

//

// MessageId: ERROR_SXS_CANT_GEN_ACTCTX
//
// MessageText:
//
// The application has failed to start because its side-by-side
// configuration is incorrect. Please see the application event
// log or use the command-line sxstrace.exe tool for more detail.
//
#define ERROR_SXS_CANT_GEN_ACTCTX        14001L

所以这显然是一个DLL依赖问题