当前位置:编程学习 > C#/ASP.NET >>

请教一个在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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,