首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 数据库 第二书店 程序员

[原创]VC 下编译出极小的程序.


载new和delete这里肯定是有问题的(6楼说的没错,可惜在7楼又自我否定了)
假设我这里有个类代码:

class A
{
public:
A(){pMem = malloc(100);}

~A(){free(pMem);}

private:
void *pMem;
}


如果类这么使用的话:
A *pA = new A;
delete A;
因为楼主的delete operator只是简单地调用free函数,
所以不会调用A的析构函数,
因此在A内部构造函数分配的内存(pMem指向的内存)将不会释放。



他们设置了哪些标签:


[原创]VC 22 C++ CRT c语言 VC VC9.0的妙用 VC下的资源占用以及缩小包的途径 编程技巧 编程研究 编译 编译程序减肥 程序 高手 极小 极小的程序 技巧 技术 去CRT依赖 文件大小 下编译出极小的程序. 转载

谁收藏了这个网址:


deep_pro收录

时间:2008-6-28 17:55:14 | 相关网摘

matrixdwy收录

时间:2008-6-28 18:08:32 | 相关网摘

tianhuo_soft收录

时间:2008-6-28 18:49:37 | 相关网摘

simo110收录

时间:2008-6-28 19:24:54 | 相关网摘

lys1978900收录

时间:2008-6-28 20:15:13 | 相关网摘

nanman收录

时间:2008-6-28 20:18:49 | 相关网摘

next163收录

时间:2008-6-28 21:11:07 | 相关网摘

gzlyb收录

时间:2008-6-28 21:46:18 | 相关网摘

qinuxs收录

时间:2008-6-28 22:00:19 | 相关网摘

michney收录

时间:2008-6-28 23:45:01 | 相关网摘

DDGG收录

时间:2008-6-28 23:46:06 | 相关网摘

lyzxy收录

时间:2008-6-29 0:23:24 | 相关网摘

kitsudo收录

时间:2008-6-29 5:27:41 | 相关网摘

kitsudo收录

时间:2008-6-29 5:27:41 | 相关网摘

glee0413收录

时间:2008-6-29 9:57:06 | 相关网摘

常用函数的替代.
没了CRT许多常用的函数都无法使用,全部自己重写无疑大大加大了程序的代
码量,也没多大意义.windows提供了很多常用的函数.都由系统的dll来提供,
使用它们就不用

dyx1024收录

时间:2008-6-29 13:11:32 | 相关网摘

ding1188收录

时间:2008-6-29 14:19:20 | 相关网摘

music_xu收录

使用标签:C++,时间:2008-6-29 16:20:42 | 相关网摘

eggqq007收录

时间:2008-6-29 16:21:30 | 相关网摘

aSpace收录

时间:2008-6-29 18:51:59 | 相关网摘

d3bugman收录

时间:2008-6-29 19:31:42 | 相关网摘

zhao1027收录

时间:2008-6-29 20:07:45 | 相关网摘

redjuly收录

使用标签:C++,时间:2008-6-29 21:03:25 | 相关网摘

的动态链接CRT:3.00 KB

BigHeadZZY收录

时间:2008-6-29 21:19:42 | 相关网摘

zyyoung收录

时间:2008-6-29 21:41:14 | 相关网摘

54powerman收录

时间:2008-6-29 22:36:47 | 相关网摘

fromnpu收录

时间:2008-6-29 23:59:59 | 相关网摘

forswear收录

时间:2008-6-30 6:32:00 | 相关网摘

g351767448收录

时间:2008-6-30 7:36:20 | 相关网摘

baihacker收录

时间:2008-6-30 8:26:05 | 相关网摘

walkbywind收录

时间:2008-6-30 9:20:05 | 相关网摘

yifanernei收录

使用标签:VC, 编译, 文件大小, CRT,时间:2008-6-30 9:22:33 | 相关网摘

VC 下编译出极小的程序

lpcjj1122收录

时间:2008-6-30 9:25:54 | 相关网摘

VsirSoft收录

使用标签:[原创]VC, 下编译出极小的程序.,时间:2008-6-30 9:37:49 | 相关网摘

http://bbs.pediy.com/showthread.php?threadid=28058

eyes_nj收录

时间:2008-6-30 10:03:11 | 相关网摘

l51收录

时间:2008-6-30 10:51:33 | 相关网摘

确实要研究一下如何将一个程序编译得更小

vb_dot_net收录

时间:2008-6-30 11:00:02 | 相关网摘

用CRT要做

kisskissbye收录

时间:2008-6-30 11:49:38 | 相关网摘

CRT提供了大量常用的函数.可说只要C/C 程序基本都会用到它.但是获得了方便的同
时也增大了不少体积.虽然可以通过动态链接到外部的dll来解决,但是自此就有了对一
个更大的dll的依赖.所以要减肥,就要先拿CRT开刀.
在cl的编译参数中加上/MD,再在link中加上/nodefaultlib

czl21收录

时间:2008-6-30 12:36:01 | 相关网摘

leave_me_alone收录

时间:2008-6-30 13:10:55 | 相关网摘

bikot1205收录

使用标签:C语言,时间:2008-6-30 13:12:22 | 相关网摘

c语言的小程序

baodi_z收录

时间:2008-6-30 14:06:30 | 相关网摘

redleaf1995收录

时间:2008-6-30 16:13:14 | 相关网摘

lvwenshuai收录

时间:2008-6-30 17:52:58 | 相关网摘

序少不了动态分配内存,前面丢掉了CRT,再编译程序会发现反是有内存分配的地方都
在报错,这是因为我去掉了crt,编译器找不到对应的函数所致.所以要自己写内存分配函数.
C的malloc和C 的new/new[]都是在当前的堆上分配内存.所以只要照着写一遍就可以了:

leon0755收录

时间:2008-6-30 20:58:34 | 相关网摘

hfwanghq收录

时间:2008-6-30 21:25:42 | 相关网摘

ok_dong收录

时间:2008-6-30 21:31:32 | 相关网摘

ldp152收录

时间:2008-7-1 0:09:02 | 相关网摘

waydream收录

时间:2008-7-1 8:33:34 | 相关网摘

Semigod收录

时间:2008-7-1 10:49:18 | 相关网摘

3.00 KB

yangwm25收录

时间:2008-7-1 10:57:09 | 相关网摘

tcwang8847收录

时间:2008-7-1 11:00:21 | 相关网摘

个HelloWorld

aishangshuxue收录

时间:2008-7-1 11:36:23 | 相关网摘

brave_zm收录

时间:2008-7-1 13:00:02 | 相关网摘

spirit_only收录

使用标签:C++,时间:2008-7-1 13:30:03 | 相关网摘

NoImagination收录

时间:2008-7-1 13:46:25 | 相关网摘

njstalk收录

时间:2008-7-1 14:12:48 | 相关网摘

seasidy收录

时间:2008-7-1 16:31:13 | 相关网摘

lp3331收录

时间:2008-7-1 22:35:07 | 相关网摘

blankfang收录

时间:2008-7-2 16:04:51 | 相关网摘

很经典的程序

cszjw收录

使用标签:高手,时间:2008-7-2 19:09:38 | 相关网摘

linxiang2008收录

时间:2008-7-2 20:04:51 | 相关网摘

yclinuxmyf收录

使用标签:VC, 编译, 极小的程序,时间:2008-7-2 20:11:31 | 相关网摘

shelia910收录

时间:2008-7-4 10:06:20 | 相关网摘

sp1也不是自带的.更不便于程序的部署.
最后自己去查了查资料终于编译出体积比较满意的exe,步骤如下:
1.扔掉CRT.
CRT提供了大量常用的函数.可说只要C/C 程序基本都会用到它.但是获得了方便的同
时也增大了不少体积.虽然可以通过动态链接到外部的dll

ltaoscu收录

时间:2008-7-5 11:43:43 | 相关网摘

fomyth收录

使用标签:VC, 下编译出极小的程序.,时间:2008-7-5 15:38:44 | 相关网摘

greenery收录

使用标签:VC, 编译, 技巧,时间:2008-7-5 17:25:42 | 相关网摘

woyaodigua收录

时间:2008-7-5 20:30:17 | 相关网摘

vc++不懂

beff收录

使用标签:22,时间:2008-7-6 6:20:07 | 相关网摘

zhengxianglei收录

时间:2008-7-6 9:30:52 | 相关网摘

���

imcreasy收录

时间:2008-7-7 11:21:54 | 相关网摘

aa3000收录

时间:2008-7-9 12:23:25 | 相关网摘

xiaodaoshan收录

时间:2008-7-10 20:07:38 | 相关网摘

luoxizhi收录

时间:2008-7-11 11:25:11 | 相关网摘

heatel收录

时间:2008-7-11 12:38:56 | 相关网摘

someone收录

时间:2008-7-11 15:20:58 | 相关网摘

得去找个vc6,复制里面的msvcrt.lib,改个名.比如vcrt6.lib然后把它添加到链接的库里.编译的时候

cadinfo收录

时间:2008-7-13 15:24:20 | 相关网摘

wenbin0727收录

时间:2008-7-13 22:12:42 | 相关网摘

ghostjeky收录

使用标签:转载,时间:2008-7-14 10:09:35 | 相关网摘

VC 下编译出极小的程序

smile_linlin收录

使用标签:程序, 编程研究,时间:2008-7-14 14:39:42 | 相关网摘

绝对让你有收获得

douxing610收录

时间:2008-7-14 18:20:17 | 相关网摘

neverstop188收录

时间:2008-7-15 8:55:41 | 相关网摘

kahn178收录

时间:2008-7-15 9:34:02 | 相关网摘

xuxingjian收录

时间:2008-7-15 13:14:57 | 相关网摘

fjz13收录

使用标签:技术,时间:2008-7-15 15:21:43 | 相关网摘

nescafe1111收录

时间:2008-7-15 23:27:55 | 相关网摘

tzqqkl收录

时间:2008-7-17 9:10:53 | 相关网摘

载new和delete这里肯定是有问题的(6楼说的没错,可惜在7楼又自我否定了)
假设我这里有个类代码:

class A
{
public:
A(){pMem = malloc(100);}

~A(){free(pMem);}

private:
void *pMem;
}


如果类这么使用的话:
A *pA = new A;
delete A;
因为楼主的delete operator只是简单地调用free函数,
所以不会调用A的析构函数,
因此在A内部构造函数分配的内存(pMem指向的内存)将不会释放。

66i88收录

时间:2008-7-17 13:11:21 | 相关网摘

http://bbs.pediy.com/showthread.php?threadid=28058

hhyytt收录

时间:2008-7-18 13:31:11 | 相关网摘

mu399收录

时间:2008-7-19 18:40:37 | 相关网摘

liangshengyong收录

时间:2008-7-19 18:43:08 | 相关网摘

hcriddick收录

使用标签:VC, 编程技巧,时间:2008-7-20 16:43:13 | 相关网摘

shepherd08收录

使用标签:c++,时间:2008-7-20 18:07:00 | 相关网摘

licong_1987收录

时间:2008-7-21 19:02:22 | 相关网摘

luyue720收录

时间:2008-7-22 15:13:17 | 相关网摘

MD msgbox.cpp /link /nodefaultlib:msvcrt.lib /entry:main
编译后大小:2.00KB
加上/align:16

liguangyi收录

时间:2008-7-22 20:26:53 | 相关网摘

kuanghong收录

时间:2008-7-23 8:19:55 | 相关网摘

hongyi1159收录

时间:2008-7-23 8:44:17 | 相关网摘

rodney1983收录

时间:2008-7-23 9:40:53 | 相关网摘

Netsnatch收录

时间:2008-7-23 19:06:00 | 相关网摘


网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
Copyright © 2000-2008, CSDN.NET, All Rights Reserved