- ベストアンサー
VC++でwin32APIを作っているのですが・・・
こんにちは。私はwin32APIを勉強しているc言語初心者です。 私はMicrosoft Visual C++ 2008を使ってc言語のwin32APIをプログラミングしているのですが、独学でやっているので物凄く邪道なwin32APIプログラミングをしているような気がするのです。 ・c言語のプログラムを書いて、C++のwin32APIプロジェクトとしてビルドする。 ・ヘッダーファイルにwin32API関数がなかったので、自分のwindowOSからwin32API関数を探し出してVC++2008のなかのincludeフォルダ内にコピー&ペーストして使えるようにした。 これって邪道ですか?一応何の問題もなくwin32APIプログラムが作れるのですが、もっと正規なやり方があるでしょうか。回答よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
文章のあちこちが意味不明です。 >VC++でwin32APIを作っているのですが・・・ VC++でwin32APIを使って作っているのですが・・・ >・c言語のプログラムを書いて、C++のwin32APIプロジェクトとしてビルドする。 まぁ気になるなら拡張子を.cに変えてください。これでただのC言語として扱われます。 >・ヘッダーファイルにwin32API関数がなかったので、自分のwindowOSからwin32API関数を探し出してVC++2008のなかのincludeフォルダ内にコピー&ペーストして使えるようにした。 #includeを追加しているって意味なら問題なし。Win32APIのヘッダを自分のプロジェクト内にコピーしていたら邪道。自分のソースのヘッダファイルにWin32APIのヘッダの内容をコピーして使っているなら超邪道。将来バージョンアップで必ず問題を引き起こします。 『PlatformSDK』をちゃんとインストールしているなら#includeするだけです。
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
素のWindowsの場合ヘッダーファイルなどSDK関連のファイルは添付されていないはずです VC++2008なら プラットフォームSDKが同梱になっていたはずです インストール段階でオプション扱いなのかもしれませんが ... 『PlatformSDK』といったフォルダーが VC2008をインストールしたフォルダーの『VC』フォルダーの中に無いか確認してみましょう
お礼
>>インストール段階でオプション扱いなのかもしれませんが ... オプション設定をしていませんでした。今マイクロソフトのサイトに行ってPlatformSDKダウンロードしたら決しました。回答ありがとうございました!
お礼
>>まぁ気になるなら拡張子を.cに変えてください。これでただのC言語として扱われます。 解決しました!プロジェクト内のメインソース「***.cpp」とVC++が自動追加する「stdafx.cpp」があるのですが、一度メインソースの方だけ拡張子を「***.c」に変えてビルドしたらエラーになった(あたりまえですね・・・(汗))ので「***.c」にしたらいけないのかな?と思っていました。両方「.c」にすれば良かったんですね。 ヘッダーファイルの件は、win32APIプログラムを作ってビルドしてみたら、includeフォルダの中に<window.h>というヘッダファイルが存在しない、という様なことを指摘されたので自分のPCのWindowsOS(XP)からwin32APIのヘッダファイル郡を探して、VC++でもヘッダファイルとして使えるように、OSから発見したヘッダファイル郡をVC++のincludeフォルダ内にコピーペーストして使えるようにした、という意味です(ちょっと分かりにくいかもしれません)。 って言うかPlatformSDKをインストールすれば良かったんですね。 分りました。回答ありがとうございました!