请教 :C# 调用 DLL(C++) 的问题 (关于返回 char[]) 。 谢谢先 [刚才搜索了一下,没有找到答案]
双子东宝 2005-08-23 05:23:07 DLL 中函数定义如下
/*++------------------------------------------------------------------------
Function:
EncryptDES
Parameters:
[out] e_bit Encryption data
[in] k_bit Key data
[in] m_bit Uncryption data
--------------------------------------------------------------------------*/
extern "C"
_declspec(dllexport)
void
__stdcall
EncryptDES(unsigned char m_bit[8] ,
unsigned char k_bit[8] ,
unsigned char e_bit[8]);
----------------------------------------------------------------------------------
在C#中定义如下:
[DllImport("NetEagle.dll",EntryPoint="EncryptDES")]
public static extern void EncryptDES( ref StringBuilder m_bit ,
StringBuilder k_bit ,
StringBuilder e_bit);
----------------------------------------------------------------------------------
调用如下:
private void button1_Click(object sender, System.EventArgs e)
{
StringBuilder strE = new StringBuilder("12345678");
StringBuilder strK = new StringBuilder("kill");
StringBuilder strM = new StringBuilder(8);
TransferDll execTransferDll = new TransferDll();
execTransferDll.EncryptDES(ref strM,strK,strE);
}
调用后 返回值(m_bit)为空。
请问是什么原因?如何解决?
谢谢