2012-07-09 4 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

+0

대답은 작동하지 않았지만 링크를 입력하면 pinvoker.com을 발견하고 해결책을 얻었습니다! 감사! – Riera