【发布时间】:2011-08-14 07:02:58
【问题描述】:
尝试使用 Dll Import 从 c# 访问旧的 c++ dll。 现在在网上搜索了大约 4 天,但没有成功。
我正在尝试使用来自 asp.net mvc 3 网站 .net 4 的 c++ dll。
我已将平台目标更改为 x86。 我已经在 iis 的应用程序池上将“启用 32 位应用程序”设置为 true。
在 iis 7.5 中使用 Windows Server 2008 R2
有什么方法可以调试或获取更多关于可能出错的信息吗?
链接ASP.NET P/Invoke "An attempt was made to load a program with an incorrect format" 指出:
“要使用 32 位 dll,您的 Web 应用程序必须以 32 位模式运行,这是通过将 IIS 切换为以 32 位模式运行来完成的”并提供了有关如何更改此设置的链接,但这似乎只是关注 IIS 6 和 asp.net 2
提前致谢! 最好的问候
编辑 1: c# 中的 c++ 方法调用的错误声明会导致此错误吗?读取错误可能会猜到调用具有 3 个参数的函数应该接收 4 会导致此错误。
【问题讨论】:
-
更改设置后是否回收应用程序池?
-
是的,甚至 net stop w3svc
-
可能与this有关。
标签: c# .net iis pinvoke 32bit-64bit