首页新闻找找看学习计划

32位的dll运行于64位的操作系统,出现异常。

0
悬赏园豆:30 [待解决问题]
 FirmClient.dll是 c编写的运行于32位操作系统的dll 
方法签名是:
INET_STATUS LoginC(char* pBranchID, char* pszCoNo, char* pszPwd)

我在C#里面写:
[DllImport("FirmClient.dll")]
        public extern static int LoginC(StringBuilder pBranchID, StringBuilder pszCoNo, StringBuilder pszPwd);

有人说由于64位内存边界值不一样,所以将string换成了stringbuilder, 但是得到的结果是一样的。去LoginC一直失败。

放在xp sp3 iis5.1下面运行,LoginC可以登陆成功。
放在server 2008 r2 iis7.5下面运行,LoginC 登陆一直失败


我在7.5下面 开启了32位运行模式。

求解...... 
双调的主页 双调 | 初学一级 | 园豆:7
提问于:2012-02-04 15:42
< >
分享
所有回答(1)
0

你的c#写的程序编译的时候是选择的AnyCpu的吗?选择X86吧!这样就应该可以了

小小刀 | 园豆:1991 (小虾三级) | 2012-02-04 17:05

很牛B啊,可以解决问题

支持(0) 反对(0) hyyly | 园豆:202 (菜鸟二级) | 2013-08-21 00:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册