猿问

关于调用com组件的问题

com组件名称 s.dll

包含方法签名如下

int CreateKey(char* dkey, int dkeyLen, char* ekey, int ekeyLen);

c#这样调用

[DllImport( "s.dll" , EntryPoint="CreateKey" ,CharSet = CharSet.Ansi)]
public static extern int CreateKey(out string decryptKey , int decryptKeyLen ,out string encryptKey , int encryptKeyLen );

调用代码如下:

string dkey = "";
string ekey = "";
int dlen = 32;
int elen = 32;
CreateKey(out dkey, dlen, out ekey, elen);

 

看起来似乎正确,调用的时候确报如下错误

Additional Information: The runtime has encountered a fatal error. The address of the error was at 0x79e71bd7, on thread 0x7b0. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack.

郁闷...


浮云间
浏览 467回答 2
2回答

慕姐8265434

把dll传上来看看
随时随地看视频慕课网APP
我要回答