VC笔记

本文介绍使用VS.net2003进行Windows应用程序开发的实用技巧,包括环境配置、资源管理、内存优化及多实例限制等。通过具体代码示例展示了如何设置编译选项、减少内存占用、防止多个实例运行等。
部署运行你感兴趣的模型镜像

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

 


您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值