Windows DDK のまったくの初心者であることをお許しください。
次の名前の単純なファイルを作成しましたtest.cpp
。
#include <windows.h>
#define BAD_ADDRESS 0xBAADF00D
int __cdecl main(int argc, char* args[])
{
char* p =(char*)BAD_ADDRESS;
*p='A';
return 0;
}
同じディレクトリに、次のsources
ようなファイルを作成しました。
TARGETNAME=テスト TARGETTYPE=プログラム TARGETPATH=obj TARGETLIBS=$(SDK_LIB_PATH)\kernel32.lib ソース= test.cpp
そして、makefile
このような:
# # このファイルは編集しないでください!!! .\sources を編集します。新しいソースを追加したい場合 # ファイルをこのコンポーネントに追加します。このファイルは、実際のメイク ファイルを間接的に参照するだけです。 # Windows のすべてのコンポーネントで共有される # !INCLUDE $(NTMAKEENV)\makefile.def
Windows XP Free Build Environment を起動した後、3 つのファイル (test.cpp、makefile、およびソース) を含むディレクトリを参照し、次のコマンドを実行します。
F:\temp\debug\dir1>build -cZg
どの出力:
ビルド: /Y を COPYCMD に追加して、xcopy ops がハングしないようにします。 ビルド: 2 つの子プロセスを使用する ビルド: オブジェクト ルートを次のように設定: ==> objfre_wxp_x86 ビルド: i386 用のコンパイルとリンク ビルド: コンパイルするファイルの f:\temp\debug\dir1 ディレクトリを調べています。 ビルド: コンパイル (NoSync) f:\temp\debug\dir1 ディレクトリ 1>コンパイル - i386 用の test.cpp ビルド: f:\temp\debug\dir1 ディレクトリをコンパイルしています ビルド: f:\temp\debug\dir1 ディレクトリをリンクしています 1>実行可能ファイルのリンク - objfre_wxp_x86\i386\test.exe for i386 ビルド: 完了 コンパイルされた 2 つのファイル 1 つの実行可能ファイルがビルドされました
問題は、作成した実行可能ファイルを実行すると、次のように表示さtest.exe
れることです。
F:\temp\debug\dir1\objfre_wxp_x86\i386>テスト F:\temp\debug\dir1\objfre_wxp_x86\i386\test.exe アプリケーションは、Win32 モードでは実行できません。
ここで何が欠けていますか?