1
使用C#.NET,我如何聲明和使用此功能的.dll文件中:提前申報C函數*參數在C#
DEMO_API Boolean DEMO_CALL GetVersion(Char* versionBuffer,
UInt16* versionLengthBuffer);
謝謝!
使用C#.NET,我如何聲明和使用此功能的.dll文件中:提前申報C函數*參數在C#
DEMO_API Boolean DEMO_CALL GetVersion(Char* versionBuffer,
UInt16* versionLengthBuffer);
謝謝!
這是我找到了解決辦法:
[DllImport("DEMO.dll",
SetLastError = true,
CallingConvention = CallingConvention.Cdecl)]
public extern static byte GetVersion(
[MarshalAs(UnmanagedType.LPStr)] StringBuilder versionBuffer,
[MarshalAs(UnmanagedType.LPWStr)] StringBuilder versionLengthBuffer);
C#沒有字符串指針的概念,您可以使用字符串/ int。
基本上要定義你自己,你必須做一些略微不同的事情,但它不會兼容。
public bool GetVersion (string versionBuffer, int versionLengthBuffer)
如果使用現有項目你看看pInvoke可能的簽名的列表。
感謝您的聯繫! – carny666 2012-07-09 14:00:19
答案沒有用,但進入鏈接我找到pinvoker.com,我得到了解決方案!謝謝! – Riera 2012-07-09 14:09:31