Простите меня за то, что вы новичок в Windows DDK.Ошибка при компиляции с 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=test TARGETTYPE=PROGRAM TARGETPATH=obj TARGETLIBS=$(SDK_LIB_PATH)\kernel32.lib SOURCES= test.cpp
И в makefile
так:
# # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the components of Windows # !INCLUDE $(NTMAKEENV)\makefile.def
После запуска Windows XP Free Build E nvironment я просматриваю к директории с тремя файлами (test.cpp, Makefile и источников) и выполните следующую команду:
F:\temp\debug\dir1>build -cZg
который выводит:
BUILD: Adding /Y to COPYCMD so xcopy ops won't hang. BUILD: Using 2 child processes BUILD: Object root set to: ==> objfre_wxp_x86 BUILD: Compile and Link for i386 BUILD: Examining f:\temp\debug\dir1 directory for files to compile. BUILD: Compiling (NoSync) f:\temp\debug\dir1 directory 1>Compiling - test.cpp for i386 BUILD: Compiling f:\temp\debug\dir1 directory BUILD: Linking f:\temp\debug\dir1 directory 1>Linking Executable - objfre_wxp_x86\i386\test.exe for i386 BUILD: Done 2 files compiled 1 executable built
Проблема заключается в том, что, когда я бегу создан исполняемый test.exe
он говорит:
F:\temp\debug\dir1\objfre_wxp_x86\i386>test The F:\temp\debug\dir1\objfre_wxp_x86\i386\test.exe application cannot be run in Win32 mode.
что я здесь отсутствует?
Этот человек получил достаточно близко, чтобы позволить выполнять работу. Для того, чтобы он был принят, он даже требовал некоторой настройки. – 2008-10-23 10:32:34