2017-03-29 24 views
1

Visual C++プロジェクトでWindows APIを使用しようとしましたが、コンパイルの問題が発生しました。Visual C++: 'mouse_event'の関数定義が見つかりません。

私のクラスの中で私は、次のコードを持っている:

public:  
[System::Runtime::InteropServices::DllImport("user32.dll")] 
static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwextrainfo); 

これは、私は現在、仕事に)(MOUSE_EVENTを取得しようとしているように私は私のクラスを持っているすべてです。

"のextern" 投げている:

more than one storage class specified

"MOUSE_EVENT" はリンクエラーを投げている:

Function definition for "mouse_event" not found

私はexternとマウスイベントを宣言した、はWindows.hと輸入USER32が含まれています。これは、user32.dll内のmouse_event()の定義にリンクするために必要なものではありませんか?

変更静的にexternにちょうどにextern、それはスロー:

Invalid storage class for a class member

メンバーの宣言に使用された場合はexternクラス定義でOKではないでしょうか?

私はこれまでstackoverflowでこの関数の非常によく似たコードの実装を見てきました。

ことができます場合は、私のクラスは、任意の考えが

の「参照クラス」と定義されていますか?

答えて

0

あなたはC#に関連するので、あなたが見つけたinterop構文をエミュレートしようとしていますか? C++でのこのような行動は、もう少し複雑です: https://msdn.microsoft.com/en-us/library/3y1sfaz2.aspx

博覧会のために編集:それは立っているので そうでない場合は、このようなアプローチ、またはあなたのクラスの残りのソースのインスピレーションを指定してください、私はC + +、ビジュアルかどうかで動作していない。それはあなたがそこにターゲットとしている既存のC++ネームスペースでさえありませんが、それは私の前提を実証する.NETのものです。

関連する問題