2012-04-12 28 views

答えて

1

:あなたはネイティブのDLLからC#のDLLIMPORT宣言を生成する必要がある場合

class PlatformInvokeTest 
{ 
    [DllImport("msvcrt.dll")] 
    public static extern int puts(string c); 
    [DllImport("msvcrt.dll")] 
    internal static extern int _flushall(); 

    public static void Main() 
    { 
     puts("Test"); 
     _flushall(); 
    } 
} 

、この記事を見て

using System.Runtime.InteropServices; 
class C 
{ 
    [DllImport("user32.dll")] 
    public static extern int MessageBoxA(int h, string m, string c, int type); 
    public static int Main() 
    { 
     return MessageBoxA(0, "Hello World!", "Caption", 0); 
    } 
} 

この例は、nativで実装されているC#メソッドを宣言するための最小要件を示していますe DLL。メソッドC.MessageBoxA()は、static修飾子とexternal修飾子で宣言され、user32.dllの実装が、MessageBoxAというデフォルト名を使用して実装されていることをコンパイラーに通知するDllImport属性があります。

this link

2

が正確に何をしたいに依存参照してください...私は私のコードでは、このようなものを持っているが、これは、Win32 APIのDLLの

[DllImport("user32.dll")] 
static extern IntPtr GetForegroundWindow(); 

はその後、ちょうど

GetForegroundWindow() 
を呼び出して使用しています

はクラス内で定義されているかのように

関連する問題