c#.net调用vc++dll文件,高手帮忙看一看哪里有错

[复制链接]
查看11 | 回复1 | 2011-5-4 14:47:17 | 显示全部楼层 |阅读模式
dll文件原函数是:extern "C" _declspec(dllexport) void Encrypt(UINT PublicKey,UINT mod, FILE* fipRe, FILE* fipWr,char* extrName );
c#调用为:
[DllImport("encryption.dll", CallingConvention = CallingConvention.Cdecl)]

public static extern void Encrypt(uint PublicKey, uint mod, IntPtr fipRe, IntPtr fipWr, string extrName);
private void Encrypt_OK_Click(object sender, EventArgs e)

{

uint PublicKey = Convert.ToUInt32(Pu_K);

uint mod = Convert.ToUInt32(Mo);

IntPtr fipRe = Marshal.StringToHGlobalAnsi(Encrypt_label1.Text);

IntPtr fipWr = Marshal.StringToHGlobalAnsi(Encrypt_label2.Text);

string extrName=null;

Encrypt(PublicKey,mod,fipRe,fipWr,extrName);

}
运行报错:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”
求高手指教,不胜感激!
dll里有一句typedef unsigned int UINT;

回复

使用道具 举报

千问 | 2011-5-4 14:47:17 | 显示全部楼层
这个你慢慢调试吧,得好好研究Pinvoke噢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行