バナー
Visual C++(.net)でWin32 APIやprintfなどを使う方法
2012年 1月 24日(火曜日) 20:10

こんにちは。久々にプログラムな話しを。

 

最近のVisual Studio(C++, C#, Basicなど)でWindowプログラムを作るときは、

.net frameworkでプログラム組むのが主流です。

 

.netは使いやすくて良いのですが、ちょっと独特なので、

普通のC/C++で書きたくなるときもあると思います。

 

Visual C++は、.netと普通のC/C++やwin32 APIも混在させてプログラムすることが出来るので、

その方法を書いてみます。

.net frameworkなプログラムの中で、printfなども普通に使えます。

ついでにコマンドウィンドウ(DOS窓)も出せます。

 

なお、VS2008で解説するので、2010等とは画面が違うかもしれないです。

 

 

まずは、プロジェクトを作成するために、
ファイル→新規作成→プロジェクト と進み、
下図のように
Windows フォームアプリケーションを選んでください。

 

vs01

 

 

 プロジェクトのプロパティで、

下図のように【共通言語ランタイムサポート/clr】を選択してください。

 

vs02

 

少し解説しますと、
デフォルトだと「/clr:pure」となっていて、.netなプログラムしか受け付けません。
「/clr」にすると.netなプログラムと普通のC/C++と混在させることが出来るようになります。

 

 

次に、printfの出力先をコマンドウィンドウにしたいので、次のように、コンソールを選択してください。

とりあえずこの状態でプログラムを実行させるとコマンドウィンドウが表示されるようになります。

 

vs03

 

 

 

 

printf等を使いたいので、
stdafx.hに
#include <stdio.h>
#include <stdlib.h>
を追記してください。

  

 

あとは、ボタンを押したらprintfさせるために、ボタン置いて、ダブルクリックして出来たコードに
以下のように書いてください。
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
          printf("hello\n");
}


実行すると下図のようにコマンドウィンドウにprintfされます!

 

 

vs04

 

 

補足ですが、win32APIを使いたいときは、stdafx.hに

#include <windows.h>

などを書いていけば使えます。