请教一个在X64下C#调用DLL的问题
在32位系统下我调用一个DLL (计算机xp系统,VS2008 编译)[DllImport("a.dll", EntryPoint = "?000", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int Ft(string a);
private void Test(object file)
{
string fealog ="aa";
Ft(fealog);
}
这个在32位系统调试一点都没有问题.
但是在win2003 X64 用VS2008 调试下,运行到 Ft(fealog)这个方法的时候报错: ERROR - 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
--------------------编程问答-------------------- http://blog.csdn.net/jiangxinyu/article/details/6205066 --------------------编程问答-------------------- 这个是明显的不兼容造成的。
编译项目指定目标平台为 x86 就完了,不能用 Any CPU
工程属性 -> 生成 -> 配置管理器 -> 平台 -> 点击 Any Cpu 选项卡 -> 新建 -> 新建平台 ->X86
(Visual Studio 2010 为:工程属性 -> 生成 -> 常规 -> 目标平台 -> x86。Express 版本不具有目标平台选择功能)
这样编译后就能调用你哪些DLL了
补充:.NET技术 , C#