我在 C++ 培训项目中做了很多事情,其中 stackoverflow 对我帮助很大。我总是试图尽可能保持它的“标准”,以便它是跨平台的。到处使用 boost、C++11 线程和使用 WIN32 套接字或 BSD API 的包装器。我决定为 friend 编译为 RELEASE 只是为了炫耀,它需要在他的计算机上安装 MSVCPP110.dll :(
我在早期就遇到了这个问题,但后来我将 Visual Studio 设置为将 MFC 编译为静态库,并修复了初始测试,但我不知道我在代码中放入了什么要求“我的用户”为一个简单的控制台应用程序安装 Visual C++ Redistribute,该应用程序启动 2 个线程并在其中一个线程上打开 TCP 套接字。
您对新手有什么建议吗?我如何检查是什么困扰了我的系统,或者如何将其包含在可执行文件中,我发现我的计算机上的一些游戏在其中包含上述 DLL安装目录,如果我只是将该 DLL 与我的可执行文件打包在一起,它会起作用吗?
感谢您提前就此事提出任何建议!
PS:在彻底检查我的代码后,我意识到这可能是一个问题
#pragma comment(lib, "ws2_32.lib")
但我似乎没有找到这个库的静态版本:U 有没有解决方法。我需要该库来进行 WSA 启动调用
WSAStartup(MAKEWORD(2,2), &Winsock);
最佳答案
您不需要所有文件,通常只需要一两个文件 像 mfcXXX 和 msvcrxxx
使用 http://dependencywalker.com/ 检查您的依赖关系并将它们添加到您的发行版中
关于C++:查找依赖于 Visual C++ Redistribute 的内容的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15900455/