什么原因?楼主_china()2003-03-1914:57:52在VC/MFC/基础类提问
无聊的时候,把winasm教程里的东西一改:;asm.asm.386.modelflat,stdcalloptioncasemap:noneinclude\masm32\include\windows.incinclude\masm32\include\user32.incincludelib\masm32\lib\user32.lib;callstofunctionsinuser32.libandkernel32.libinclude\masm32\include\kernel32.incincludelib\masm32\lib\kernel32.libpublicmyMainmyMainproto:DWORD,:DWORD,:DWORD,:DWORD.DATA;initializeddataClassNamedb"SimpleWinClass",0;thenameofourwindowclassAppNamedb"OurFirstWindow",0;thenameofourwindow.DATA?;UninitializeddatahInstanceHINSTANCE?;InstancehandleofourprogramCommandLineLPSTR?.CODE;Herebeginsourcodestart:invokeGetModuleHandle,NULL;gettheinstancehandleofourprogram.;UnderWin32,hmodule==hinstancemovhInstance,eaxmovhInstance,eaxinvokeGetCommandLine;getthecommandline.YoudonthavetocallthisfunctionIF;yourprogramdoesntprocessthecommandline.movCommandLine,eaxinvokemyMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT;callthemainfunctioninvokeExitProcess,eax;quitourprogram.TheexitcodeisreturnedineaxfromWinMain.myMainprochInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORDLOCALwc:WNDCLASSEX;createlocalvariablesonstackLOCALmsg:MSGLOCALhwnd:HWNDmovwc.cbSize,SIZEOFWNDCLASSEX;fillvaluesinmembersofwcmovwc.style,CS_HREDRAWorCS_VREDRAWmovwc.lpfnWndProc,OFFSETWndProcmovwc.cbClsExtra,NULLmovwc.cbWndExtra,NULLpushhInstancepopwc.hInstancemovwc.hbrBackground,COLOR_WINDOW+1movwc.lpszMenuName,NULLmovwc.lpszClassName,OFFSETClassNameinvokeLoadIcon,NULL,IDI_APPLICATIONmovwc.hIcon,eaxmovwc.hIconSm,eaxinvokeLoadCursor,NULL,IDC_ARROWmovwc.hCursor,eaxinvokeRegisterClassEx,addrwc;registerourwindowclassinvokeCreateWindowEx,NULL,\ADDRClassName,\ADDRAppName,\WS_OVERLAPPEDWINDOW,\CW_USEDEFAULT,\CW_USEDEFAULT,\CW_USEDEFAULT,\CW_USEDEFAULT,\NULL,\NULL,\hInst,\NULLmovhwnd,eaxinvokeShowWindow,hwnd,CmdShow;displayourwindowondesktopinvokeUpdateWindow,hwnd;refreshtheclientarea.WHILETRUE;EntermessageloopinvokeGetMessage,ADDRmsg,NULL,0,0.BREAK.IF(!eax)invokeTranslateMessage,ADDRmsginvokeDispatchMessage,ADDRmsg.ENDWmoveax,msg.wParam;returnexitcodeineaxretmyMainendpWndProcprochWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM.IFuMsg==WM_DESTROY;iftheuserclosesourwindowinvokePostQuitMessage,NULL;quitourapplication.ELSEinvokeDefWindowProc,hWnd,uMsg,wParam,lParam;Defaultmessageprocessingret.ENDIFxoreax,eaxretWndProcendpendstart编译设置为:commandsC:\masm32\bin\ml.exe/nologo/coff/Zf/c/Sa$(InputName).asmoutputs$(InputName).obj结果窗口成myMain的窗口了,不明白,什么原因?@_@问题点数:0、回复次数:2Top1楼_china()回复于2003-03-1915:00:41得分0
注意注意:我说的是asm.asm被插在任意一VC++工程里的。Top2楼_china()回复于2003-03-1915:04:05得分0
结果原工程exe窗口变了。-_-Top相关问题