• ベストアンサー
  • 暇なときにでも

VC++でwin32APIを作っているのですが・・・

こんにちは。私はwin32APIを勉強しているc言語初心者です。 私はMicrosoft Visual C++ 2008を使ってc言語のwin32APIをプログラミングしているのですが、独学でやっているので物凄く邪道なwin32APIプログラミングをしているような気がするのです。 ・c言語のプログラムを書いて、C++のwin32APIプロジェクトとしてビルドする。 ・ヘッダーファイルにwin32API関数がなかったので、自分のwindowOSからwin32API関数を探し出してVC++2008のなかのincludeフォルダ内にコピー&ペーストして使えるようにした。 これって邪道ですか?一応何の問題もなくwin32APIプログラムが作れるのですが、もっと正規なやり方があるでしょうか。回答よろしくお願いします。

noname#113783
noname#113783

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数891
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2
  • zwi
  • ベストアンサー率56% (730/1282)

文章のあちこちが意味不明です。 >VC++でwin32APIを作っているのですが・・・ VC++でwin32APIを使って作っているのですが・・・ >・c言語のプログラムを書いて、C++のwin32APIプロジェクトとしてビルドする。 まぁ気になるなら拡張子を.cに変えてください。これでただのC言語として扱われます。 >・ヘッダーファイルにwin32API関数がなかったので、自分のwindowOSからwin32API関数を探し出してVC++2008のなかのincludeフォルダ内にコピー&ペーストして使えるようにした。 #includeを追加しているって意味なら問題なし。Win32APIのヘッダを自分のプロジェクト内にコピーしていたら邪道。自分のソースのヘッダファイルにWin32APIのヘッダの内容をコピーして使っているなら超邪道。将来バージョンアップで必ず問題を引き起こします。 『PlatformSDK』をちゃんとインストールしているなら#includeするだけです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

>>まぁ気になるなら拡張子を.cに変えてください。これでただのC言語として扱われます。 解決しました!プロジェクト内のメインソース「***.cpp」とVC++が自動追加する「stdafx.cpp」があるのですが、一度メインソースの方だけ拡張子を「***.c」に変えてビルドしたらエラーになった(あたりまえですね・・・(汗))ので「***.c」にしたらいけないのかな?と思っていました。両方「.c」にすれば良かったんですね。 ヘッダーファイルの件は、win32APIプログラムを作ってビルドしてみたら、includeフォルダの中に<window.h>というヘッダファイルが存在しない、という様なことを指摘されたので自分のPCのWindowsOS(XP)からwin32APIのヘッダファイル郡を探して、VC++でもヘッダファイルとして使えるように、OSから発見したヘッダファイル郡をVC++のincludeフォルダ内にコピーペーストして使えるようにした、という意味です(ちょっと分かりにくいかもしれません)。 って言うかPlatformSDKをインストールすれば良かったんですね。 分りました。回答ありがとうございました!

関連するQ&A

  • VC++コマンドプロンプトでwin32コンパイル

     c言語でwin32AIを開発しようと思ったのですが、c言語のwin32API プログラムをVisual C++2008のコマンドプロンプト経由でビルドするこ とは出来るのでしょうか?回答よろしくお願いします。

  • VC++ .NETでWin32 APIの関数を呼び出すことは可能なのでしょうか?

    Visual C++ 2003 .NETで、Win32 APIの関数をSystem.Runtime.InteropServices名前空間を利用して呼び出したく、チャレンジしておりますが、C#のやり方でやると記述エラーになります。 Google等で調べても、C#のものばかり出てくるのですが、VC++ .NETではWin32 API関数を呼び出すことはできないのでしょうか?

  • C言語でWin32API

    C言語を使ってWin32APIを呼び出すような、Windowsプログラミングを始めたいんですが、何かよい本やサイトはご存知ないでしょうか。 Visual C++6.0はあるんで、それを使えばいいと思うんです。 C言語はわかるんですが、Windowsプログラミングに関する知識はほとんどないので、ごく基本的なことから知りたいんです。 WinMain関数というのを書くようなんですが、その書き方すら知りません。  スケルトン(出来れば、それよりもっと基本的なこと)から書いてあるようなものです。

その他の回答 (1)

  • 回答No.1
  • redfox63
  • ベストアンサー率71% (1325/1856)

素のWindowsの場合ヘッダーファイルなどSDK関連のファイルは添付されていないはずです VC++2008なら プラットフォームSDKが同梱になっていたはずです インストール段階でオプション扱いなのかもしれませんが ... 『PlatformSDK』といったフォルダーが VC2008をインストールしたフォルダーの『VC』フォルダーの中に無いか確認してみましょう

共感・感謝の気持ちを伝えよう!

質問者からのお礼

>>インストール段階でオプション扱いなのかもしれませんが ... オプション設定をしていませんでした。今マイクロソフトのサイトに行ってPlatformSDKダウンロードしたら決しました。回答ありがとうございました!

関連するQ&A

  • VC++でC言語を学習(初心者)

    市販の本で、C言語を学ぼうと思っております。環境はVC++なのですが、 プログラミングに至るまでで、つまずいてしまいました...。 プロジェクト→Win32 Console Application→ファイル→C++ソースファイル、 とすると、Cのプログラムではビルド時にエラーが起きてしまいます。 VC++の本では載っていなかったので、質問をさせて頂きました。 よろしくお願い致します。 また、何か参考記事等ありましたら、合わせて教えて下さい。

  • 時間差と取得するためにはWin32API関数の何を使えばいいですか?

    VC++を使っています。 プログラム上で、ある2点間の時間差(経過時間)を得たいのですが、 Win32API関数で、何を使えばいいのでしょうか? SYSTEMTIME構造体で返される時刻関数は、時間差を計算しずらそうなので。。。

  • Win32APIでのメモリ管理について

    C→malloc関数 C++→new演算子 Win32API→GlobalAlloc関数 とWin32APIでのメモリ管理の方法にはいろいろありますが、どれを使うのが一番実用的なのか、どれが一番効率的なのかが知りたいです。 あとWin32APIにはHeapAllocという関数もあるようですが、上記の3つは使わずにこの関数を使用したほうがよいのでしょうか。

  • VC++ と C++Builder

    C++の基本的な構造は理解していて、Win32APIを勉強しようとVC++でプログラミングを始めた者です。参考書は猫でもわかるWindowsプログラミングを見ながら勉強しています(難しくてあまり理解出来ていませんが)。 しかし、機能が多すぎたりと使いこなす自信がありません。 C++Builderに変えてみようかと思っているのですが、VC++とC++Builderの違いを教えて下さい。漠然としすぎていてアホっぽい質問ですが・・。 VC++とC++Builderのプログラムの書き方の大きな違いなどはあるのでしょうか? また、みっちり調べたつもりですが無償のBorlandC++Builderが見あたらないのですが・・・。

  • VC++におけるリンクについて。

    VC++6.0でWIN32APIを使用したプログラミングを行っているのですが、ビルドさせるとリンク中に8割ぐらいの割合でよく固まってしまいます。ビルドの中止をクリックしてもなんの反応もなく、全く動かなくなるので毎回タスクマネージャでVC++を強制終了させています。なぜそんなことになるのでしょうか?さっぱりわかりません。 どなたか原因を教えてください、おねがいします。

  • Visual Studio関連でAPIを使った学習方法は効率的でしょうか。

    C++の勉強をしようと思い、Visual C++ 2005 Express Edition を使って勉強しています。 本屋さんに行くと古めの本には、windowsプログラムはAPI関数も使って勉強した方がバグなどの対応にも融通が効くと書かれていますが、2008年の現時点でvisual studio関連の製品も発展していると思いますが、API関数を使ったプログラムの勉強方法は効率的でしょうか。 API関数を使ったプログラミングの本(Visual C++(1) 山本信雄著)を購入しをプログラミングを始めたばかりですが、windowsの仕組みも少しは理解出来たと思います。 またMFCなどを使ったプログラミングを行った方が良いのでしょうか。 宜しくお願いします。

  • C++とWIN32APIとゲームプログラミング

    WINDOWSで動くゲームを作りたくて3日ほど前からC++の勉強を始めました。 (最終的にはグラディウスのような横スクロールシューティングが作りたいです。) そこで質問なんですが 1、Win32APIについて調べるとC言語を使っての入門サイトばかりがヒットします。 Win32APIはC言語で書くものなんでしょうか? そうなってくると今WindowsのGUIアプリを作るのにC++を勉強していますが無駄ってことでしょうか? 例: 猫でもわかるプログラミング http://www.kumei.ne.jp/c_lang/index.html Win32API入門 http://wisdom.sakura.ne.jp/system/winapi/win32/index.html ちなみに今学習に利用しているサイトは以下のサイトです。 C++入門 http://www.asahi-net.or.jp/~yf8k-kbys/newcpp0.html 2、ポインタの概念について ポインタのイメージですが値を格納している場所みたいな感じで大方あってますでしょうか? 僕は組み込み系をやっているのでアセンブラにどっぷり漬かっています。 なんていうかレジスタの番地がポインタに該当するのかなって思っています。 ↓みたいなイメージで考えています。 ポインタ=データの場所=レジスタ番地 これであってますか? 3、まだGUIには進んでませんがウインドウのメニュー(ファイル、編集等)を作るのにリソースファイルも作るって説明が上記ページ(猫でもわかる)に書いてましたがリソーススクリプトとかヘッダーもプログラム言語とは別に勉強する必要があるんでしょうか? 4、C++のクラス概念について クラスとは複数の関数をひとまとめにしてグループ管理(おおざっぱに言うとサブルーチンの集まり的な)するようなものってイメージであってますか? 5、WindowのGUIアプリのプログラムの概要ですが各オブジェクト(ウインドウやボタン、マウスポインタ等)に対して「クリックされた」とかのアクションに対して動作するプログラムを書くって事でいいんでしょうか? 6、お勧めの参考書籍について 今までアセンブラをはじめPerlやJavaScript、C言語のお勧め入門書をいろんなサイトのレビューを見て買いましたが本よりネットの入門サイトのほうがかなり役にたってきました。それでも入門書を買うのは気持ち的に安心するからなんですが・・・ それを踏まえた上で僕の最終的な目的にあうような本があったら是非教えてください。 7、勉強の進め方や「合わせてこれも勉強しろ」っていう項目があれば教えてください。 現状としては 「C++の基礎(必要ですか?)」→「Win32API」→「DirectX」で行こうと思っています。

  • VC++で

    VC++で #include <iostream> using namespace std; int main() { cout << "motona_\n"; cout << "画面出力\n"; } をビルドすると… 1>------ ビルド開始: プロジェクト: AA, 構成: Release Win32 ------ 1> AA.cpp 1>AA.cpp(18): error C2731: 'main' : 関数はオーバーロードできません。 1> AA.cpp(17) : 'main' の宣言を確認してください。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== と出てきてしまいます。 どこが間違ってるのでしょうか????C++を始めたばかりなんで全くわかりません

  • Win32APIを始めたのですが・・・。

    Window Handleについての質問です。Win32APIではCreateWindow()でチェックボックスを作ることが出来るのですが、 C++でプログラミングしていたところ、困ったことになりました。 まず、クラスのメンバーとしてHWND m_Hwndを宣言し、メンバー関数(CreateChk())において m_Hwnd = CreateWindow(...)とし、WM_CREATEのメッセージ処理内で関数CreateChk()を呼び出して チェックボックスを作るようにしたのですが、WM_CREATEのメッセージ処理を終えると同時にm_Hwndの内容が意味を持たないものに 変わってしまい、チェックボックスの状態を利用することが出来ません。 変数の寿命に関係したものだとは思うのですが、クラスを用いたオブジェクト指向プログラミングも始めたばかりでよくわかりません。 どなたか対処方法をご存知でないでしょうか?

  • windowsでの自動化

    windowsで、画面上の色を取得して、自動的にクリックするプログラムを作りたいのですが、 必要なものがわかりません。 調べてみると、win32apiとvisual C++を使う方法があるようですが、他の方法はあるのでしょうか。 ちなみにプログラミングの経験は、C言語でCUIのプログラミングをしたことがある程度です。 簡単なデータ構造やアルゴリズムもわかります。 ですが言語は問いません。 よろしくお願いします。