忍者ブログ
暇人おやじの暇なつぶやき
[53] [52] [51] [50] [49] [48] [47] [46] [45] [44] [43]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

■VC++.NETからのDLL呼び出し

.NETの考え方からすると直接DLLを呼び出すというのはよくないらしいが
呼ばなければならない時がある

これには、Runtimeクラスを使用する

    using namespace System::Runtime::InteropServices;

そして、使用するDLLの明示する

 [DllImport("user32")]
    extern int MessageBoxA(
        int hWnd , String^ lpText , String^ lpCaption , unsigned int uType
    );

上記はuser32.dllにあるMessageBoxAという命令を呼び出す際の定義です
これで、このプログラム(NameSpace)で呼び出す準備ができました

次に呼び出しを実施します
今回はボタンを押下したらMessageBoxAを呼び出してみましょう

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
             {
                 MessageBoxA(0,L"DLLのテスト",L"呼ばれました",0x00);
             }

これがボタンを押した際のコードになります
実際にプログラマが書くのは「{ 」と「 }」の間のコードだけです

このサンプル、実際には MessageBox::Show で代用できますがDLLの呼び出しということで
一番簡単と思われるものを記載しました

尚、宣言部で各種プロパティを設定できます
[DllImport("user32", CharSet=CharSet::Ansi, ExactSpelling=true)]

これは自動で行ってくれるということが説明にあるので、気にしなくてもOK
PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
フリーエリア
最新CM
最新TB
プロフィール
HN:
忍者 シオ才
性別:
非公開
バーコード
ブログ内検索