boyboyjack 发表于 2012-3-14 18:42:30

还是汇编吧, 当然可以用低版本的 VC 或VB 不过有些要运行库, 都是一样.

boyhong 发表于 2012-4-9 15:05:05

试试这个
ceoguang 发表于 2012-3-13 18:27 http://www.autoitx.com/images/common/back.gif


    超版,你是如何编译出来的呀?呵呵,很爽~~~

redapple2008 发表于 2012-4-9 16:25:08

试试这个
ceoguang 发表于 2012-3-13 18:27 http://www.autoitx.com/images/common/back.gif


    批处理吗?

thesnow 发表于 2012-4-9 17:06:22


#include <Windows.h>
#pragma comment(linker, "/MERGE:.text=.thesnoW")
#pragma comment(linker, "/MERGE:.rdata=.thesnoW")
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
        HMODULE mod=LoadLibrary("shell32.dll");
        DWORD pShellExecute=(DWORD)GetProcAddress(mod,"ShellExecuteA");
        char* lpParameters="/passive";
        char* lpFile="test.msi";
        __asm{
                push 0;
                push 0;
                push lpParameters;
                push lpFile;
                push 0;
                push 0;
                call DWORD ptr pShellExecute;
                push 0;
                call DWORD ptr ExitProcess;
        }
}

redapple2008 发表于 2012-4-9 17:22:45


thesnow 发表于 2012-4-9 17:06 http://www.autoitx.com/images/common/back.gif


    这是什么呀?看不懂的

thesnow 发表于 2012-4-9 17:35:30

这是什么呀?看不懂的
redapple2008 发表于 2012-4-9 17:22 http://www.autoitx.com/images/common/back.gif


    不懂+1

redapple2008 发表于 2012-4-9 17:37:23

不懂+1
thesnow 发表于 2012-4-9 17:35 http://www.autoitx.com/images/common/back.gif


    原来你在后台呀?

thesnow 发表于 2012-4-9 19:00:34

补充一下:
运行并等待:#include <Windows.h>
#pragma comment(linker, "/MERGE:.text=.thesnoW")
#pragma comment(linker, "/MERGE:.rdata=.thesnoW")
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
        HMODULE mod=LoadLibrary("shell32.dll");
        DWORD pShellExecute=(DWORD)GetProcAddress(mod,"ShellExecuteExA");
        char x;
        LPSHELLEXECUTEINFO lpExecInfo = (LPSHELLEXECUTEINFO)x;
        lpExecInfo->cbSize=sizeof(SHELLEXECUTEINFO);
        lpExecInfo->nShow=nShowCmd;
        lpExecInfo->lpFile="test.msi";
        lpExecInfo->lpParameters="/passive";
        lpExecInfo->fMask=SEE_MASK_NOCLOSEPROCESS ;
        __asm{
                push lpExecInfo;
                call dword ptr pShellExecute;
        }
        WaitForSingleObject(lpExecInfo->hProcess,INFINITE);
        CloseHandle(lpExecInfo->hProcess);
        ExitProcess(0);
}PS:部分使用DDE的程序会导致退出了,但是进程仍然存在,这样会引起本程序无限等待.使用CreateProcess来创建进程并等待效果会好很多,缺点是你得指定exe的完整路径,而不是一个msi....


ceoguang 发表于 2012-4-9 20:31:06

楼上的代码改成:多线程 (/MT)
体积就飞了

thesnow 发表于 2012-4-9 20:43:04

楼上的代码改成:多线程 (/MT)
体积就飞了
ceoguang 发表于 2012-4-9 20:31 http://www.autoitx.com/images/common/back.gif


    编译时已经去掉了默认库,不使用默认的入口.(就是使用/MT编译的).
运行时(静态)内置的memset都无法使用.因此LPSHELLEXECUTEINFO指向的内存还是用char申请的.

afan 发表于 2012-4-9 21:03:56

不知道 Warez 组织的那些仅有 64 KB 的3D动画是用什么写的。想当年"彗星撞地球"那叫一个震撼……

redapple2008 发表于 2012-4-10 14:40:06

看来全都是程序高手呀

392861168 发表于 2013-1-13 23:58:03

我哪有空跟你玩儿啊,像我这样的大牌,今年档期早都排满了,我有好多好多电影,电视剧和广告要看啊。

pris 发表于 2013-3-27 21:06:13

是个问题。

zengshihao1988 发表于 2013-4-18 12:30:36

{:face (411):}
页: 1 [2] 3
查看完整版本: 请教一下,哪个编程软件编译出的EXE小呢?