Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试加载带有错误格式异常的程序,该异常会随着VS安装而消失 我设计了一个C++的Windows APPN,它也调用了一些函数[C++DLL通过DLICONTION()导入] < /P> < >我的C++代码是在Win32平台上构建的.DLL,而我的C是构建为“任何CPU”平台。_C#_Visual Studio 2010_Dllimport - Fatal编程技术网

C# 尝试加载带有错误格式异常的程序,该异常会随着VS安装而消失 我设计了一个C++的Windows APPN,它也调用了一些函数[C++DLL通过DLICONTION()导入] < /P> < >我的C++代码是在Win32平台上构建的.DLL,而我的C是构建为“任何CPU”平台。

C# 尝试加载带有错误格式异常的程序,该异常会随着VS安装而消失 我设计了一个C++的Windows APPN,它也调用了一些函数[C++DLL通过DLICONTION()导入] < /P> < >我的C++代码是在Win32平台上构建的.DLL,而我的C是构建为“任何CPU”平台。,c#,visual-studio-2010,dllimport,C#,Visual Studio 2010,Dllimport,当我在测试机中运行.EXE(C#)时,我会遇到一个错误 试图加载格式不正确的程序 来自hresult 0x8007000B的异常 但是,如果在计算机中安装VSS 2010,然后运行EXE,则不会遇到此错误 1)此错误的原因? 2) 为什么在安装VSS时未观察到错误? 我使用Win7操作系统(64位)在AnyCPU平台中构建.EXE(C#),而该平台又依赖于Win32中构建的DLL(使用DllImport在C#中导入的C++DLL),这几乎总是因为您从64位DLL/EXE等调用32位代码,或者从3

当我在测试机中运行.EXE(C#)时,我会遇到一个错误

试图加载格式不正确的程序 来自hresult 0x8007000B的异常

但是,如果在计算机中安装VSS 2010,然后运行EXE,则不会遇到此错误

1)此错误的原因? 2) 为什么在安装VSS时未观察到错误?


我使用Win7操作系统(64位)在AnyCPU平台中构建.EXE(C#),而该平台又依赖于Win32

中构建的DLL(使用DllImport在C#中导入的C++DLL),这几乎总是因为您从64位DLL/EXE等调用32位代码,或者从32位DLL调用64位DLL。如果为x86构建c#,会发生什么?它仍将在64位上运行。

我猜这是一个位不匹配错误--您的.dll是32位,而.exe是64位,或者相反。VS安装了一大堆东西,虽然我不知道这将如何解决您的问题。请更新您的问题,包括OS、.dll位和.exe位。此外,请检查您的构建设置,并强制.Net部件与.dll的位匹配。我已检查了所有设置,并已在上面进行了更新。让我知道:你正在运行它的机器呢?请注意,Win32只是低级Windows API的名称,没有Win64,虽然Win32应用程序可以编译为64位.exe。我仍然在想,因为测试机是32位的,当我选择Win32在平台上时,C++ DLL是如何生成的。当我使用x86(而不是任何CPU)时,这个问题就解决了。这里的详细问题是什么?任何CPU都意味着框架将确定在应用程序启动时是以64位还是32位运行。我本来期望测试机是64,因此不能在运行时调用32位C++ DLL。DLL是Win32构建的,而EXE是在安装了VS的X86BIT机上作为任何CPU平台(在VSS)中构建的。现在,测试机器有x86版本的操作系统,在这里运行这个应用程序。从这里,64位是在所有的x86中倾斜,我遇到了C++主程序在发布x86模式中的问题,并尝试加载C++ DLL。当我在项目属性页中选择x86而不是任何CPU时,问题消失了。