C ++ Win32没有C运行时库依赖,但有malloc,free atd

时间:2012-08-18 16:20:03

标签: c++ windows runtime malloc msvcrt

我想减少在MS Visual Studio C ++中编程的win32应用程序的大小,我也希望保证所有Windows版本(XP和没有Visual C ++ Redistributable Package的上层)的兼容性。我使用/MT/NODEFAULTLIB参数来减小文件大小并摆脱C运行时库。但我失去了对malloc,free,strcat,strstr等函数的访问权限......绕过这个问题的最佳方法是什么?

我正在考虑这些替代方案:

  1. 使用LoadLibrary(“msvcrt.dll”)和GetProcAddress()进行动态加载 从标准Windows库
  2. 指向此函数的指针
  3. 自己编写此函数,例如将malloc替换为VirtualAlloc(), 免费使用VirtualFree()等..
  4. 或者它是我的问题的其他解决方案?谢谢

1 个答案:

答案 0 :(得分:1)

我可能永远不会理解为什么人们想这样做(PC并不是完全没有尺寸问题的嵌入式平台),但基本上有三种选择: