- ベストアンサー
VC++でwin32APIを作っているのですが・・・
こんにちは。私はwin32APIを勉強しているc言語初心者です。 私はMicrosoft Visual C++ 2008を使ってc言語のwin32APIをプログラミングしているのですが、独学でやっているので物凄く邪道なwin32APIプログラミングをしているような気がするのです。 ・c言語のプログラムを書いて、C++のwin32APIプロジェクトとしてビルドする。 ・ヘッダーファイルにwin32API関数がなかったので、自分のwindowOSからwin32API関数を探し出してVC++2008のなかのincludeフォルダ内にコピー&ペーストして使えるようにした。 これって邪道ですか?一応何の問題もなくwin32APIプログラムが作れるのですが、もっと正規なやり方があるでしょうか。回答よろしくお願いします。
- C・C++・C#
- 回答数2
- ありがとう数2
- みんなの回答 (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ダウンロードしたら決しました。回答ありがとうございました!
関連するQ&A
- VC++ .NETでWin32 APIの関数を呼び出すことは可能なのでしょうか?
Visual C++ 2003 .NETで、Win32 APIの関数をSystem.Runtime.InteropServices名前空間を利用して呼び出したく、チャレンジしておりますが、C#のやり方でやると記述エラーになります。 Google等で調べても、C#のものばかり出てくるのですが、VC++ .NETではWin32 API関数を呼び出すことはできないのでしょうか?
- ベストアンサー
- C・C++・C#
- C言語でWin32API
C言語を使ってWin32APIを呼び出すような、Windowsプログラミングを始めたいんですが、何かよい本やサイトはご存知ないでしょうか。 Visual C++6.0はあるんで、それを使えばいいと思うんです。 C言語はわかるんですが、Windowsプログラミングに関する知識はほとんどないので、ごく基本的なことから知りたいんです。 WinMain関数というのを書くようなんですが、その書き方すら知りません。 スケルトン(出来れば、それよりもっと基本的なこと)から書いてあるようなものです。
- ベストアンサー
- C・C++・C#
- VC++コマンドプロンプトでwin32コンパイル
c言語でwin32AIを開発しようと思ったのですが、c言語のwin32API プログラムをVisual C++2008のコマンドプロンプト経由でビルドするこ とは出来るのでしょうか?回答よろしくお願いします。
- ベストアンサー
- C・C++・C#
- VCとWin32APIの使用について?
Delphiを使用しているのですが、私は、システムに直結してそうなので、あまり使いたくないのですが、ゴミ箱移動やWin32APIを使うこともあります。 こういった事を調べていたの時、少し見たのですが、VC++?では、Win32APIは、ためらってしまう?という、意見をみました。 その時は、スルーしたのですが、何か理由があるのでしょうか? (VC++じゃなく、VBだったかもしれません。 今もちらちらと、調べてみましたが、見つけることができなくって。 もしかしたら、Delphi信者の方なのかもしれませんが、なにか理由があるのかな?と思いまして。 どう考えても、Win32APIと、マイクロソフトの言語が、相性が悪い訳がある訳ないだろうし。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- VC++におけるリンクについて。
VC++6.0でWIN32APIを使用したプログラミングを行っているのですが、ビルドさせるとリンク中に8割ぐらいの割合でよく固まってしまいます。ビルドの中止をクリックしてもなんの反応もなく、全く動かなくなるので毎回タスクマネージャでVC++を強制終了させています。なぜそんなことになるのでしょうか?さっぱりわかりません。 どなたか原因を教えてください、おねがいします。
- ベストアンサー
- C・C++・C#
- VC++でC言語を学習(初心者)
市販の本で、C言語を学ぼうと思っております。環境はVC++なのですが、 プログラミングに至るまでで、つまずいてしまいました...。 プロジェクト→Win32 Console Application→ファイル→C++ソースファイル、 とすると、Cのプログラムではビルド時にエラーが起きてしまいます。 VC++の本では載っていなかったので、質問をさせて頂きました。 よろしくお願い致します。 また、何か参考記事等ありましたら、合わせて教えて下さい。
- ベストアンサー
- C・C++・C#
- Visual Studio関連でAPIを使った学習方法は効率的でしょうか。
C++の勉強をしようと思い、Visual C++ 2005 Express Edition を使って勉強しています。 本屋さんに行くと古めの本には、windowsプログラムはAPI関数も使って勉強した方がバグなどの対応にも融通が効くと書かれていますが、2008年の現時点でvisual studio関連の製品も発展していると思いますが、API関数を使ったプログラムの勉強方法は効率的でしょうか。 API関数を使ったプログラミングの本(Visual C++(1) 山本信雄著)を購入しをプログラミングを始めたばかりですが、windowsの仕組みも少しは理解出来たと思います。 またMFCなどを使ったプログラミングを行った方が良いのでしょうか。 宜しくお願いします。
- ベストアンサー
- C・C++・C#
- mecabというアプリケーションをvisual studio 2010
mecabというアプリケーションをvisual studio 2010を用いてC言語で実行したいのですが、どのようにすればいいのか分からず困ってます。 mecabの中にあるヘッダファイルは C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include に入れたらincludeしてくれたのですが、実行してみると 未解決の外部シンボル __imp__mecab_destroy が関数 _main で参照されました。 となってしまいうまくコンパイルできません。 ヘッダファイルのほかにどのファイルをどこに入れたらいいのか もしわかる方がいれば教えていただけますか?
- ベストアンサー
- C・C++・C#
- VC++2010の「#include <」
VC++ で、他人の作ったソースコードをビルドして実行してみています。 (WinPcapのデベロッパ向けのライブラリを使った、サンプルプログラムです。) VC++自体、あまり理解が深くないのですが、 「#include <」まで書くと、「ヘッダファイル名が表示される」プロジェクトと、「そうではない」プロジェクトがあります。 「そうではない」方のプロジェクトだと、ビルド時にincludeするライブラリが足りないとか、そんな感じのエラーが表示されます。 ぱっと見の違いは、「ヘッダファイル名が表示される」プロジェクトの場合は、 ソリューションエクスプローラに、「外部依存関係」というフォルダのショートカットがあり、ライブラリがどっさりあります。 「そうではない」プロジェクトについても、「#include <」で、ヘッダファイルを表示してくれるようにしたいのですが、どの様にすればよいのでしょうか?★ プロジェクトのプロパティの、 C++>プリプロセッサ>プリプロセッサの定義 リンカー>入力>追加の依存ファイル はどちらのソースも同じにしたのですが…。
- ベストアンサー
- C・C++・C#
- windows10でVC6.0++のclを使いたい
cl.exeの場所:C:\Program Files\Microsoft Visual Studio\VC98\Bin 環境変数INCLUDE設定:C:\Program Files\Microsoft Visual Studio\VC98\Include 環境変数LIB設定:C:\Program Files\Microsoft Visual Studio\VC98\Lib を登録したのですが、mspdb60.dllがないといわれました。 検索したらあるのですが、 どうすれば、Windows10でvc6.0++のCコンパイラを使えますか? 教えてくださいよろしくお願いします。
- ベストアンサー
- C・C++・C#
お礼
>>まぁ気になるなら拡張子を.cに変えてください。これでただのC言語として扱われます。 解決しました!プロジェクト内のメインソース「***.cpp」とVC++が自動追加する「stdafx.cpp」があるのですが、一度メインソースの方だけ拡張子を「***.c」に変えてビルドしたらエラーになった(あたりまえですね・・・(汗))ので「***.c」にしたらいけないのかな?と思っていました。両方「.c」にすれば良かったんですね。 ヘッダーファイルの件は、win32APIプログラムを作ってビルドしてみたら、includeフォルダの中に<window.h>というヘッダファイルが存在しない、という様なことを指摘されたので自分のPCのWindowsOS(XP)からwin32APIのヘッダファイル郡を探して、VC++でもヘッダファイルとして使えるように、OSから発見したヘッダファイル郡をVC++のincludeフォルダ内にコピーペーストして使えるようにした、という意味です(ちょっと分かりにくいかもしれません)。 って言うかPlatformSDKをインストールすれば良かったんですね。 分りました。回答ありがとうございました!