2012-07-09 41 views
1

使用C#.NET,我如何聲明和使用此功能的.dll文件中:提前申報C函數*參數在C#

DEMO_API Boolean DEMO_CALL GetVersion(Char* versionBuffer, 
    UInt16* versionLengthBuffer); 

謝謝!

回答

0

這是我找到了解決辦法:

[DllImport("DEMO.dll", 
     SetLastError = true, 
     CallingConvention = CallingConvention.Cdecl)] 
    public extern static byte GetVersion(
     [MarshalAs(UnmanagedType.LPStr)] StringBuilder versionBuffer, 
     [MarshalAs(UnmanagedType.LPWStr)] StringBuilder versionLengthBuffer); 
2

C#沒有字符串指針的概念,您可以使用字符串/ int。

基本上要定義你自己,你必須做一些略微不同的事情,但它不會兼容。

public bool GetVersion (string versionBuffer, int versionLengthBuffer) 

如果使用現有項目你看看pInvoke可能的簽名的列表。

+0

感謝您的聯繫! – carny666 2012-07-09 14:00:19

+0

答案沒有用,但進入鏈接我找到pinvoker.com,我得到了解決方案!謝謝! – Riera 2012-07-09 14:09:31