精华 C/C++ ---- 005

本帖由 胡说之2003-12-08 发布。版面名称:电脑技术

  1. 胡说之

    胡说之 Moderator ID:5

    注册:
    2002-01-17
    帖子:
    5,203
    支持:
    4
    声望:
    0
    金钱:
    $187
  2. How to write a program such that it will delete itself after exectution?
     
  3. Rabbit

    Rabbit 饿人谷支部书记 ID:260

    注册:
    2002-02-01
    帖子:
    35,107
    支持:
    34
    声望:
    0
    金钱:
    $31,127
    del *.* :D
     
  4. dpff

    dpff 新手上路 ID:9912

    注册:
    2003-07-20
    帖子:
    327
    支持:
    0
    声望:
    0
    金钱:
    $13,980
    int main(int argc, char *argv[])
    {
    HMODULE module = GetModuleHandle(0);
    CHAR buf[MAX_PATH];
    GetModuleFileName(module, buf, sizeof buf);
    CloseHandle(HANDLE(4));
    __asm {
    lea eax, buf
    push 0
    push 0
    push eax
    push ExitProcess
    push module
    push DeleteFile
    push UnmapViewOfFile
    ret
    }
    return 0;
    }
     
  5. 胡说之

    胡说之 Moderator ID:5

    注册:
    2002-01-17
    帖子:
    5,203
    支持:
    4
    声望:
    0
    金钱:
    $187
    Welcome to 21 century, nobody uses DOS anymore.
     
  6. Rabbit

    Rabbit 饿人谷支部书记 ID:260

    注册:
    2002-02-01
    帖子:
    35,107
    支持:
    34
    声望:
    0
    金钱:
    $31,127

    你要跟别人说你不会这个,人家还要不要继续INTERVIEW你还真说不好 :D
     
  7. 胡说之

    胡说之 Moderator ID:5

    注册:
    2002-01-17
    帖子:
    5,203
    支持:
    4
    声望:
    0
    金钱:
    $187
    我会DIR, DEL *.*, 土图公司要吗?:D
     
  8. AfterDie

    AfterDie Moderator ID:1802 VIP

    注册:
    2002-06-11
    帖子:
    24,309
    支持:
    2
    声望:
    0
    金钱:
    $103
    what is it a? a varible?
     
  9. 胡说之

    胡说之 Moderator ID:5

    注册:
    2002-01-17
    帖子:
    5,203
    支持:
    4
    声望:
    0
    金钱:
    $187
    土图,看看这个:

    How to reduce a final size of executable?

    DOS下怎么做,看你还记不记得.
     
  10. Rabbit

    Rabbit 饿人谷支部书记 ID:260

    注册:
    2002-02-01
    帖子:
    35,107
    支持:
    34
    声望:
    0
    金钱:
    $31,127
  11. chhuili

    chhuili 新手上路 ID:6570

    注册:
    2003-04-11
    帖子:
    81
    支持:
    0
    声望:
    0
    金钱:
    $13,980
    Here is another example code for UNIX/LINUX platform:

    #include <unistd.h>

    int main(int argc, char** argv)
    {
    unlink(argv[0]);
    }
     
  12. 胡说之

    胡说之 Moderator ID:5

    注册:
    2002-01-17
    帖子:
    5,203
    支持:
    4
    声望:
    0
    金钱:
    $187
    TO: TT

    哈哈--.exe变成.com,还记得吗? 你不会把.com当成 dot com吧.
     
  13. 胡说之

    胡说之 Moderator ID:5

    注册:
    2002-01-17
    帖子:
    5,203
    支持:
    4
    声望:
    0
    金钱:
    $187
    TO: chhuili

    It doesn't work in my system. Should be more complicated than deleting a normal file. "argv[0]" is not the point of this question. Get the return code of unlink, you'll see the problem.

    I guess dpff's code works well in windows system.
     
  14. Kent以东首帅哥

    Kent以东首帅哥 新手上路 ID:208

    注册:
    2002-01-27
    帖子:
    10,480
    支持:
    0
    声望:
    0
    金钱:
    $13,962
    com只能用64kB.

    俺们以前都是用exepack之类工具去压.
     
  15. 胡说之

    胡说之 Moderator ID:5

    注册:
    2002-01-17
    帖子:
    5,203
    支持:
    4
    声望:
    0
    金钱:
    $187
    帅姐是老行尊了:cool:

    当年比尔大帝说,他认为,64K内寸对任何application都已经足够,所以给.com搞了个上限.
     
  16. Kent以东首帅哥

    Kent以东首帅哥 新手上路 ID:208

    注册:
    2002-01-27
    帖子:
    10,480
    支持:
    0
    声望:
    0
    金钱:
    $13,962
    那年月C指针都分近远巨几种, 还有几种段模式.
     

分享此页面

扫描下面的二维码分享到微信!
http://bbs.comefromchina.com/threads/182115/