程序打包问题? 程序挪到别人机子上无法运行?

donkeydonkey 2009-02-06 11:39:07
大家好!
今天编了个网络通信程序,可是测试的时候拿到别人的机子上无法运行?配置不正确?(但是在安装了vs2005的机子上就可以)
我用的平台是vs2005,是不是因为我没有把程序打包,缺少某些库文件造成的?
请问如何是vs2005打包?
如不生成安装程序,绿色版应如何处理??谢谢各位!
...全文
115 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2009-02-06
  • 打赏
  • 举报
回复
贴运行不了的错误……
donkeydonkey 2009-02-06
  • 打赏
  • 举报
回复
#include <WinSock2.h>
#include <stdio.h>
#include <conio.h>
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
return;
}

/* Confirm that the WinSock DLL supports 2.2.*/
/* Note that if the DLL supports versions greater */
/* than 2.2 in addition to 2.2, it will still return */
/* 2.2 in wVersion since that is the version we */
/* requested. */

if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
WSACleanup( );
return;
}

SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_family=AF_INET;
addrSrv.sin_addr.S_un.S_addr=inet_addr("219.216.101.10");
addrSrv.sin_port=htons(6000);

connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

char recvBuf[100];
recv(sockClient,recvBuf,100,0);
printf("%s\n",recvBuf);

send(sockClient,"s",strlen("s")+1,0);

closesocket(sockClient);
WSACleanup();

printf("Press anykey to continue");
while(!_kbhit())
NULL;

}

这是我写的代码,请大家回答仔细点,小弟实在没有办法了
bitxinhai 2009-02-06
  • 打赏
  • 举报
回复
把你的程序release一下试试,
很可能是程序引用vs库引起的问题!!!!
Suese 2009-02-06
  • 打赏
  • 举报
回复
不理解要拷哪些库,一次我就写了个简单读取txt文件的东东,代码也很简单,基本上什么也没用到啊
waizqfor 2009-02-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 donkeydonkey 的帖子:]
大家好!
今天编了个网络通信程序,可是测试的时候拿到别人的机子上无法运行?配置不正确?(但是在安装了vs2005的机子上就可以)
我用的平台是vs2005,是不是因为我没有把程序打包,缺少某些库文件造成的?
请问如何是vs2005打包?
如不生成安装程序,绿色版应如何处理??谢谢各位!
[/Quote]
运行不了 应该是连接错误吧 或是路径错误 也就是你说的配置
看看添加的lib库有没有 估计是编译器不同 所在的库的位置也不同 2008试试了吗
hhyttppd 2009-02-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shequay 的回复:]
如果是本机代码,绿色版的话,把程序中用到的库一起拷过去。
[/Quote]

你的问题应该是少了vc8的运行库
dxk01 2009-02-06
  • 打赏
  • 举报
回复
如果是本机代码,绿色版的话,把程序中用到的库一起拷过去。
lanmaozi 2009-02-06
  • 打赏
  • 举报
回复
偶不用05

用depends工具看看依赖的库,连那些一起打包过去-
chenyingshu 2009-02-06
  • 打赏
  • 举报
回复
没用过,帮顶
Suese 2009-02-06
  • 打赏
  • 举报
回复
这个我也碰到过,我就用VC6.0写了个读取试验数据的小程序到别人那里都运行不了,晕~~~
InfidelX 2009-02-06
  • 打赏
  • 举报
回复
建立一个make file,手动链接,把需要的库都添加上,用vc自带的nmake链接,然后就能放到别人机器上运行了,注意用dependency walker察看需要哪些库文件,然后,make下就能work了。
waizqfor 2009-02-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 donkeydonkey 的回复:]
#include <WinSock2.h>
#include <stdio.h>
#include <conio.h>
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
return;
}
/* Confirm that the…
[/Quote]
看了一下 就是lib库没添加的问题
把ws2_32.lib添加到你的工程中。在菜单中选则project->settings->link,然后在Object/library modules 一栏中加上 "ws2_32.lib"。
叶落寒山 2009-02-06
  • 打赏
  • 举报
回复
VC自带的depends工具,可以列出exe用到的所有dll。
还有一些第三方的软件可以查看 ,如:Systernals的Process Explorer,还有
windows优化大师等等。
herman~~ 2009-02-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lanmaozi 的回复:]
偶不用05

用depends工具看看依赖的库,连那些一起打包过去-
[/Quote]

同意
Laura_li 2009-02-06
  • 打赏
  • 举报
回复
自己写好的程序为什么不把程序弄成安装文件直接在别人的电脑上运行啊?

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧