4
我試圖通過從C#中的字符串德爾福創建的DLL。 德爾福DLL期待PChar。傳遞字符串作爲PChar類型從CSHARP德爾福DLL
這裏是德爾福出口
procedure DLL_Message(Location:PChar;AIntValue :integer);stdcall;
external 'DLLTest.dll';
C#進口(最後一個我想,有串字符*參考串...)
[DllImport(
"DLLTest.dll",
CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Ansi,
EntryPoint = "DLL_Message"
)]
public static extern void DLL_Message(IntPtr Location, int AIntValue);
我收到訪問衝突在任何訪問值辦法。
是否有任何解決方案,通過在C#中的字符串值作爲PChar類型?
的MarshalAs。這是默認編組。對於DllImport屬性的參數同樣如此。只需要文件名。 – 2012-02-15 00:10:48
你確定嗎?不是默認的UnmanagedType.LPWStr(UTF-16)? – 2012-02-15 10:02:10
顯然,這是BSTR:http://msdn.microsoft.com/en-us/library/s9ts558h.aspx – 2012-02-15 10:08:02