【发布时间】:2011-08-01 12:32:58
【问题描述】:
我正在使用 Visual Studio 2008 Express。我有一个在 Vista 32 位上运行良好的解决方案。我最近切换到 Windows 7,其中一部分停止工作。这是我的设置: - 非托管 C++ 静态库,“库” - 托管的 C++ DLL,它包装了“库”的功能以在 C# 中使用,“DLL” - 引用“DLL”的托管 C++ 控制台应用程序 - 引用“DLL”的 C# 应用程序
运行 C# 应用程序时,DLL 抛出异常,我通常通过托管 C++ 控制台应用程序调试此类问题,因为我可以进入非托管库代码。
问题是我现在得到一个弹出对话框,其中包含一些奇怪的符号和 "C:\Windows\Microsoft.NET\Framework\v2.0.50727\dw20.exe" 的路径,并且然后当我尝试运行托管 C++ 控制台应用程序时,我的应用程序捕获了一个异常 "System.BadImageFormatException: is not a valid Win32 application"。我花了很多时间研究这个问题,任何与有用的建议很相似的东西都是指用 C# 构建 X86 项目,但与 C++ 无关。我尝试将 /MACHINE:X86 添加到库的 Librarian 选项中,但这似乎不起作用。
简而言之,我想我的问题是,我如何确保我的非托管 C++ 静态库能够在 32 位系统上运行?
【问题讨论】:
标签: c++ visual-studio-2008 windows-7 32bit-64bit