首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#调用非托管DLL出错的有关问题

2012-02-06 
c#调用非托管DLL出错的问题原形intCFCA_VerifySignedDataDetached(char*signature,longsignatureLength,ch

c#调用非托管DLL出错的问题
原形
int   CFCA_VerifySignedDataDetached(char   *signature,     long   signatureLength,     char*   originalData,   int   *originalDataLength,   char   *certificate,     long   *certificateLength,   HCFCAToolkit   toolkitHandle);

signature                   输入
signatureLength输入
originalData输入
originalDataLength输入
certificate输出
certificateLength输出
toolkitHandle输入

转换成
[DllImport( "CFCAToolkit.dll ",   EntryPoint   =   "CFCA_VerifySignedDataDetached ",   SetLastError   =   true,
                CharSet   =   CharSet.Ansi,   CallingConvention   =   CallingConvention.Cdecl)]
                public   static   extern   int   CFCA_VerifySignedDataDetached(string   signature,   long   signatureLength,   string   originalData,   ref   int   originalDataLength,   char[]   certificate,   ref   long   certificateLength,   IntPtr   toolkitHandle);

调用报AccessViolationException异常,似乎是certificate这个参数传递造成的,请高手指点!

[解决办法]
参数 char[] certificate 与原型中char *certificate不一致,你最好将char[] certificate
换成string certificate试一下
[解决办法]
使用unsafe吧
[解决办法]

参数 char[] certificate 与原型中char *certificate不一致,你最好将char[] certificate
换成string certificate试一下
[解决办法]
帮LZ顶
[解决办法]
char[] certificate换成string certificate

热点排行