- ベストアンサー
VC++ .NETでWin32 APIの関数を呼び出すことは可能なのでしょうか?
Visual C++ 2003 .NETで、Win32 APIの関数をSystem.Runtime.InteropServices名前空間を利用して呼び出したく、チャレンジしておりますが、C#のやり方でやると記述エラーになります。 Google等で調べても、C#のものばかり出てくるのですが、VC++ .NETではWin32 API関数を呼び出すことはできないのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
記載サイトのチェックが甘かったです。 C#についてでしたね・・・。 申し訳ございません。 codeprojectのほうにWin32APIの.NETでの利用方法らしきものが記載されていたので、URLを貼っておきます。 http://www.codeproject.com/KB/dotnet/Win32APICPlusPlustoDotNET.aspx
その他の回答 (3)
- chie65536(@chie65535)
- ベストアンサー率44% (8802/19961)
ANo.1は単なる「本の紹介だけ」で、何の参考にもならないので、ここを読んで。 http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html それでも判らなければ再質問をどうぞ。 以下蛇足。 内容も確認せず、google検索で最初の方に出てきたページのURLを貼っただけでは、回答にはなりません>ANo.1の回答者さん
お礼
ご解答感謝致します。 私が参照していたのは、ご添付くださったURLの記事です。 しかし、No2の方への回答の通り、C++でそういった記載をしますと、構文エラーになってしまうみたいです。 C++は別の書き方があるようですが、具体的なサンプルのあるページが見付からなくて、果たしてC#専門なのかと行き詰ってしまっております・・・。
- sonata1229
- ベストアンサー率36% (76/206)
C++2003.NETでWin32開発は普通にできるとは思いますが、 質問者様の内容だと、.NETアプリケーションにおいてWin32APIを使用したいということでいいのかな?? 下記サイトに、望んでいることが書かれているのではないかと思います。 http://wisdom.sakura.ne.jp/programming/cs/cs65.html
お礼
ご解答有難うございます。 VC++の.NETで、Win32の関数を使用したい・・・といった主旨になります。 いただいたサイトのURLは、C#のようですね。 C#の記述をするとC++のほうでは構文エラーになってしまうみたいです。 [DllImport("user32.dll")] public static extern bool MessageBeep(BeepType beepType); 上記のような内容を自作クラスの内側に記述すると、「error C2143: 構文エラー : ';' が 'public' の前にありません。」「error C2144: 構文エラー : 'bool' は ':' によって先行されなければなりません。」といった記述のエラーになってしまうのです。 どうもC#とC++では使い方が違うようなのですが、今回の内容でGoogleを検索しても、C#のソースしか出てこなくて、こちらで質問させていただこうと思いました。
- DIooggooID
- ベストアンサー率27% (1730/6405)
お礼
ご解答有難うございます。 そういった書籍があるのですね! 図書館で探してみようと思います。
お礼
誠に、ヒントを有難うございました。 そして、新しいサイトの情報を感謝致します。 おかげさまで、動くようになりました! ちなみに、 [DllImport("user32")] extern bool MessageBeep(unsigned int uType); このような記述になりました。 英語ができるとプログラマーとしては本当に有利なのですね。 身に染みました。 本当に有難うございました。