感觉这样还不如用汇编。。。
便携性的话,静态编译就够用了。兼容性的话,去掉运行库提升有限,直接降编译器版本或者用MinGW效果更好。
<code class="lang-cpp">#ifdef _DEBUG #pragma comment (linker, "/nodefaultlib:msvcrtd.lib") #else #pragma comment (linker, "/nodefaultlib:msvcrt.lib") #endif</code>
<code class="lang-cpp">int __cdecl wWinMainCRTStartup() { STARTUPINFO info; info.cb = sizeof(STARTUPINFO); GetStartupInfo(&info); int ret = wWinMain(GetModuleHandle(NULL), 0, GetCommandLine(), info.dwFlags & STARTF_USESHOWWINDOW ? info.wShowWindow : SW_SHOWDEFAULT); ExitProcess(ret); return ret; }</code>
<code class="lang-cpp">void* __cdecl malloc(ULONG_PTR uSize) { return (void *)HeapAlloc(GetProcessHeap(), 0, uSize); } void __cdecl free(LPVOID pMemBlock) { HeapFree(GetProcessHeap(), 0, (LPVOID)pMemBlock); } #pragma function(memcpy) void* memcpy(void * dst, const void * src, size_t count) { void * ret = dst; #if defined (_M_IA64) { extern void RtlMoveMemory(void *, const void *, size_t count); RtlMoveMemory(dst, src, count); } #else /* defined (_M_IA64) */ /* * copy from lower addresses to higher addresses */ while (count--) { *(char *)dst = *(char *)src; dst = (char *)dst + 1; src = (char *)src + 1; } #endif /* defined (_M_IA64) */ return(ret); } #pragma function(memset) void* __cdecl memset(void* src, int c, size_t count) { char *tmpsrc = (char*)src; while (count--) *tmpsrc++ = (char)c; return src; }</code>
<code class="lang-cpp">extern "C" void __cdecl __imp__invalid_parameter_noinfo() { } extern "C" void __cdecl __imp__errno() { }</code>
[修改于 8年6个月前 - 2016/06/17 19:11:11]
感觉这样还不如用汇编。。。
便携性的话,静态编译就够用了。兼容性的话,去掉运行库提升有限,直接降编译器版本或者用MinGW效果更好。
gcc+自备源码,到目标机运行的时候再编译(只是gcc还要安装不易携带) 或者。。。使用网页应用,但是不适合复杂计算等
引用 drzzm32:直接codeblocks绿色版。。。
gcc+自备源码,到目标机运行的时候再编译(只是gcc还要安装不易携带)
或者。。。使用网页应用,但是不适合复杂计算等
引用 amo:个人用vc++2005比较多→_→其实主要是因为vc6在win7中用着不爽→_→不过现在顶多用到vs2010了吧,谁会用xp sp2之前的系统呢
VC6.0一直用的很high的路过……
我用的都是比较底层的东西,没有花里胡哨的,所以用一个老的编译器,直接就不用考虑不同的客户会用什么版本的windows了
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。