我有一个C#应用程序,使用了一个DLL,因为我需要C++来访问一些user32 API的非托管功能(我无法使用PInvoke实现)。我将应用程序和DLL都编译为x86体系结构,在Windows 7 32位上一切正常。问题是,在Windows 7 64位上,当我尝试使用依赖于DLL的功能时,应用程序会崩溃(但其他所有内容都正常)。
我怀疑这是32/64位问题,所以我尝试重新编译x64体系结构的DLL,现在我可以在运行时选择要加载的DLL,包括x86和x64之间。但当我尝试使用依赖于DLL的功能时,它仍然会崩溃(因为我试图将64位DLL加载到32位程序中,这是有道理的)。我还没有尝试过将应用程序和DLL都编译为x64。我认为它会起作用,但这需要我有两个不同的安装程序,而我不想这样做。有任何线索吗?