当前位置: 代码迷 >> 汇编语言 >> 急 小弟我用radasm写代码 出了很多异常 但是它没报所在什么地方
  详细解决方案

急 小弟我用radasm写代码 出了很多异常 但是它没报所在什么地方

热度:2348   发布时间:2013-02-26 00:00:00.0
急啊!! 我用radasm写代码 出了很多错误 但是它没报所在什么地方啊
这是我照着例子 写的一段代码
Assembly code
.386.model flat,stdcalloption casemap:noneWinMai proto:DWORD,:DWORD,:DWORD,:DWORDinclude \masm32\include\windows.incinclude \masm32\include\user32.incinclude \masm32\include\kernel32.incinclude \masm32\lib\user32.libinclude \masm32\lib\kernel32.lib.Data    ClassName db "SimpleWinClass".0    AppName db "Our First Window".0.Data?    hInstance HINSTANCE ?    CommandLine LPSTR ?.Codestart:    invoke GetModuleHandle,Null    mov hInstance,eax    invoke GetCommandLine    mov Commandline,eax    invoke WinMain,hInstance,Null,CommandLine,SW_SHOWDEFAULT    invoke ExitProcess,eax    WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD  LOCAL wc:WNDCLASSEX   LOCAL msg:MSG   LOCAL hwnd:HWND mov wc.cbSize,SIZEOF WNDCLASSEXmov wc.style,CS_HREDRAW or CS_VERDRAWmov wc.lpfnWndProc,OFFSET WndProcmov wc.cbClsExtra,NULLmov wc.cbWndExtra,NULLpush hInstancepop wc.hInstancemov wc.hbrBackground,COLOR_WINDOW+1mov wc.lpszMenuName,NULLmov wc.lpszClassName,OFFSET ClassNameinvoke LoadCursor,NULL,IDC_ARROWmov wc.hCursor,eaxinvoke RegisterClassEx,addr wcinvoke CreateWindowEx,NULL,\    ADDR ClassName,\    ADDR AppName,\    WS_OVERLAPPEDWINDOW,\    CW_USEDEFAULT,\    CW_USEDEFAULT,\    CW_USEDEFAULT,\    CW_USEDEFAULT,\    NULL,\    NULL,\    hInst,\mov hwnd,eaxinvoke ShowWindow,hwnd,Cmdshowinvoke UpdateWindow,hwnd.WHILE TURE    invoke GetMessage,ADDR msg,NULL,0,0    .BREAK.IF(!eax)    invoke TranslateMessage,ADDR msg    invoke DispatchMessage,ADDR msg.endwmov eax,msg.wParamretWinMain ednpWndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM    .IF uMsg==WM_DESTROY        invoke PostQuitMessage,NULL    .ELSE        invoke DefWindowProc,hWnd,uMsg,wParam,lParam        ret    .endif    xor eax,eax    retWndProc endpend start

build的时候报了很多错误

\masm32\lib\user32.lib(29) : error A2044: invalid character in file
\masm32\lib\user32.lib(30) : error A2044: invalid character in file
\masm32\lib\user32.lib(31) : error A2044: invalid character in file
\masm32\lib\user32.lib(32) : error A2044: invalid character in file
\masm32\lib\user32.lib(33) : error A2044: invalid character in file
怎样才能使他想vc一样指出错误的地址啊


------解决方案--------------------------------------------------------
环境变量和路径没有设置不好,才会出现上述情况。
------解决方案--------------------------------------------------------
有许多语法存在错误。
------解决方案--------------------------------------------------------
.386 
.model flat,stdcall 
option casemap:none 
include windows.inc 
include user32.inc 
includelib user32.lib
include kernel32.inc 
includelib kernel32.lib 
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD 
.DATA
ClassName db "SimpleWinClass",0
AppName db "Our First Window",0
.DATA?
hInstance HINSTANCE ?
CommandLine LPSTR ? 
.CODE
start: 
invoke GetModuleHandle, NULL
mov hInstance,eax 
invoke GetCommandLine
 mov CommandLine,eax 
invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
invoke ExitProcess, eax
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD 
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG 
LOCAL hwnd:HWND 
mov wc.cbSize,SIZEOF WNDCLASSEX
mov wc.style, CS_HREDRAW or CS_VREDRAW 
mov wc.lpfnWndProc, OFFSET WndProc 
mov wc.cbClsExtra,NULL