VC笔记

1、开启VS.net2003的环境变量的cmd窗口
%comspec% /k "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
cl -c test.cpp
link test.obj /OUT:test.exe
nmake:根据makefile来编译程序

2、在源文件中直接申明编译选项
#pragma comment(lib, "gdiplus.lib")//制定链接库文件
#pragma comment (linker, "/SUBSYSTEM:WINDOWS")
#pragma comment (linker, "/NODEFAULTLIB")
#pragma once

3、SetProcessWorkingSetSize(GetCurrentProcess(),-1,-1);最小化程序占用内存

4、程序挂起:Sleep(INFINITE);

5、简单的Win32程序,不要窗口:
#include <windows.h>
__stdcall WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
Sleep(INFINITE);
return 0;
}

6、最小体积的win32程序:(不要编译缺省库)
#pragma comment (linker, "/SUBSYSTEM:WINDOWS")
#pragma comment (linker, "/NODEFAULTLIB")
int WinMainCRTStartup()
{
return 0;
}

7、利用记事本输出调试信息,在调试dll之类的程序比较方便
const char maintitle[] = "无标题 - 记事本";
LPCTSTR str = "TEST TEST TEST";
HWND h = ::FindWindow(NULL,maintitle);
::SendDlgItemMessage(h,0xf,EM_REPLACESEL,0,LPARAM(str) );

8、只允许运行一个实例
LPCTSTR myAtom = "LogCmd by monklong";
ATOM atom = GlobalFindAtom(myAtom)
if ( atom != 0 ) return 0;
GlobalAddAtom(myAtom);
//main process
GlobalDeleteAtom(atom);//程序退出时删除Atom,否则不能清除全局Atom

9、DLL中增加全局共享数据:
主程序中增加:(注意一定需要初始化)
#pragma data_seg("my_data_seg")
HHOOK hHook= NULL;
HINSTANCE hInstance= NULL;
static char logBuf[SIZE_BUFFER]= {0};
#pragma data_seg()
DEF文件中增加:
SECTIONS
my_data_seg READ WRITE SHARED


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值