C++的dll里面有一个int GetHandsetMessage(ushort ID, char * message)的方法
我在C#里面应该如何调用???
-------------------------
我尝试使用以下两种方法调用,都会爆出ExecutionEngineException错误
[DllImport("GPRS_DLL.dll", EntryPoint = "GetHandsetMessage", SetLastError = true, CharSet = CharSet.Auto)]
public static extern int GetHandsetMessage(ushort handsetID, ref StringBuilder message);
[DllImport("GPRS_DLL.dll", EntryPoint = "GetHandsetMessage", SetLastError = true)]
public static extern int GetHandsetMessage(ushort handsetID, ref string message);
è¿ä¸ªç¡®å®å¯ä»¥ï¼ä½æ¯æäºå¦å¤ä¸ä¸ªé®é¢ï¼å°±æ¯è¿åçmessageæ¯ä¹±ç ï¼è¯¥æä¹è§£å³
追çè¿åä¹±ç æ¯ç¼ç çé®é¢ï¼ä¹å°±æ¯è¯´dllå
é¨ä¸æ¯ä½¿ç¨çutf-8ç¼ç æ¹å¼ãä½ å¯ä»¥å°è¯ä»¥ä¸2个æ¹å¼ï¼
1ãä¿®æ¹CharSetçå¼ï¼æ¯ç§é½å°è¯ä¸ä¸
2ãå°å½æ°å£°ææ´æ¹ä¸º
public static extern int GetHandsetMessage(ushort handsetID, [Out]byte[] message);æè
public static extern int GetHandsetMessage(ushort handsetID, [Out,MaxLength(255)]byte[] message);
ç¶åå°è¯ä½¿ç¨åç§ç¼ç æ¹å¼å°message转æ¢ä¸ºå符串