1. Open the environment variable of VS.NET2003 CMD window% COMSPEC% / K "C: / Program Files / Microsoft Visual Studio .NET 2003 / Common7 / Tools / vsvars32.bat" Cl-C Test.cpplink test.obj / OUT : test.exenmake: Compile the program according to Makefile
2. Directly declare compilation options in the source file #pragma Comment (lib, "gdiplus.lib") // Develop link library file #pragma Comment (Linker, "/ subsystem: windows") # Pragma Comment (Linker, "/ NodeFaultlib ") #pragma overce
3, setProcessWorkingsetSize (getCurrentProcess (), - 1, -1); minimize procedure occupied memory
4, the program hangs: SLEEP (Infinite);
5. Simple Win32 program, do not windows: #include
6, minimum volume of WIN32 program: (do not compile the default library) #pragma Comment (Linker, "/ subsystem: windows") # Pragma Comment (Linker, "/ Nodefaultlib") Int WinMainCrtStartup () {return 0;}
7. Use Notepad to output debugging information, more convenient for debugging DLLs Const Char maintitle [] = "No title - Notepad"; lpctstr str = "test test test"; hwnd h = :: FindWindow (null, MAINTITE); :: Senddlgitemmessage (H, 0xF, EM_REPLACESEL, 0, LPARAM (STR));
8, only allowed to run an instance lpctstr myatom = "logcmd by Monklong"; atom atom = globalfindatom (myatom! = 0) Return 0; GlobalAddatom (Myatom); // main processGlobalDeleTom (Atom); // Program Exit Delete Atom, otherwise you can't clear the global Atom
9. In addition to the global sharing data: The main program is added: (Note must be initialized) #pragma data_seg ("my_data_seg") hHOOK hHOOK = NULL; hinstance hinstance = null; static char logbuf [size_buffer] = {0}; # Pragma data_seg () DEF file Add: SectionsMY_DATA_SEG READ WRITE SHARED