Iam在我的asp.net web应用程序中使用第三方C++ dll。尝试加载dll时出错 - 尝试加载格式不正确的程序。 (来自HRESULT的例外:0x8007000B)
dll - 64-bit
asp.net Platform - Any Cpu
asp.net Framework - 4.0 (vs 2010)
System Os - Win 7 Professional (64-bit)
我已经放置在应用程序文件夹中的DLL和调用它的完整路径的dll:
[DllImport(@"D:\Application\Sampledll.dll",
EntryPoint = "SampleFunc",
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall)]
public static extern int SampleFunc(char[] ch1, char[] ch2);
但我得到下面的结果:
An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
当搜索的错误代码:0x8007000B - 这意味着
但DLL“在64位系统中使用32位DLL”是64位DLL ....
任何如何通过将VS的目标平台更改为'x86'&'x64'并将IIS的“启用32位应用程序”属性设置为试图解决此错误“真”
,但得到了同样的错误.........
任何一个可以帮助解决这个问题....
FWIW如果函数的参数是以null结尾的字符串输入参数,它应该是'string'而不是'char []'' –
这是您在纠正问题一段时间后得到的错误代码。你需要记录的是你第一次尝试做这件事时看到的* first *错误。一定要撤消你所做的努力来解决这个问题,这很可能只会加剧问题。 –