我正在用C编写一个自定义安装程序启动程序,它打开、读取和写入文件。我使用fopen()打开文件。这在Linux上非常有效,二进制文件不依赖于libstdc++.so,但是在Visual 2010中的Windows上,我得到了对MSVCR100.DLL的依赖。如果添加/NODEFAULTLIB标志,链接器就会失败。
我需要这个程序不依赖MSVCR100.DLL,因为它启动一个安装程序,在稍后阶段安装VC++ 2010可再发行版,并且在启动时不确定主机是否有这个库。
如果没有MSVCR100.DLL,我如何操作VS中的文件?
发布于 2014-12-11 08:23:28
您可以获得msvcr100.dll (可能还有msvcp100.dll)的依赖项,因为您的项目设置定义了这一点。您应该使用静态链接而不是运行时库的动态链接。
更改您的C/C++ code generation settings:运行库。选择一个没有DLL的选项。
发布于 2014-12-11 08:33:46
或者,如果您可以稍微修改代码,您可以使用Win32 API (CreateFile,ReadFile.)。这将链接到内核32.dll,它总是可用的。
https://stackoverflow.com/questions/27418148
复制相似问题