Visual c++ 64位MFC应用程序(AppTranslator)的本地化 我将VisualC++和MFC应用程序迁移到64位。应用程序使用AppTranslator进行本地化,它基于资源dll及其自己的“apt”文件为每种语言创建本地化的资源dll。然后用“LoadLibrary”加载此dll,如果是64位资源dll,则会失败
您知道AppTranslator是否支持64位应用程序吗?对于支持64位并可以从AppTranslator导入现有本地化的本地化工具,您有什么建议吗 编辑:Dumpbin在原始资源dll上提供以下文件头:Visual c++ 64位MFC应用程序(AppTranslator)的本地化 我将VisualC++和MFC应用程序迁移到64位。应用程序使用AppTranslator进行本地化,它基于资源dll及其自己的“apt”文件为每种语言创建本地化的资源dll。然后用“LoadLibrary”加载此dll,如果是64位资源dll,则会失败,visual-c++,mfc,localization,64-bit,Visual C++,Mfc,Localization,64 Bit,您知道AppTranslator是否支持64位应用程序吗?对于支持64位并可以从AppTranslator导入现有本地化的本地化工具,您有什么建议吗 编辑:Dumpbin在原始资源dll上提供以下文件头: FILE HEADER VALUES 8664 machine (x64) 2 number of sections 54B62F13 time date stamp Wed Jan 14 10:55:47 2015
FILE HEADER VALUES
8664 machine (x64)
2 number of sections
54B62F13 time date stamp Wed Jan 14 10:55:47 2015
0 file pointer to symbol table
0 number of symbols
F0 size of optional header
2022 characteristics
Executable
Application can handle large (>2GB) addresses
DLL
而AppTranslator创建的dll
FILE HEADER VALUES
8664 machine (x64)
2 number of sections
4141A80C time date stamp Fri Sep 10 16:11:40 2004
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
210E characteristics
Executable
Line numbers stripped
Symbols stripped
32 bit word machine
DLL
有趣的是,AppTranslator创建的文件除了原始资源dll之外还有一个“32位字机”。有什么想法吗?我使用应用程序的32位构建和appTranslator来创建DLL文件 然后,我只需将这些DLL文件用于我的32位或64位应用程序构建
这在我的情况下已经运行了好几年。我认为你的问题不在于工具。仅资源DLL通常不针对64位构建,因为它们不包含任何代码。通常,您从win32项目开始。您应该验证仅资源dll是使用链接器选项/NOENTRY构建的。您一定在某种程度上是正确的,因为我没有看到任何人抱怨AppTranslator x64支持。但是,我已经有了/NOENTRY链接器选项。你有没有想过?我们正在逐步淘汰我们的32位版本,所以我们想从我们的64位exe构建我们的翻译DLL,但遇到了相同的错误。我找到了答案。将LoadLibrary更改为:
LoadLibraryEx(strFilename,NULL,加载库作为图像资源,加载库作为数据文件)代码>现在我可以从64位EXE加载app translator构建的DLL。