为什么我用vc写的程序在没有装vc的机子上就不能运行。。。。。

dfyx 2003-11-25 09:27:23
为什么我用vc写的程序在没有装vc的机子上就不能运行
说找不到链接库?
...全文
216 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
dfyx 2003-12-02
  • 打赏
  • 举报
回复
好像在release方式下,这一段代码不执行

for(int k=0;k<30;k++)
{

pdc->SetROP2(R2_NOT);
pdc->Rectangle(250+5*k,50+90*i,260+5*k,60+90*i);
for(int j=1;j<10000;j++)
for(int t=1;t<2000;t++);
pdc->Rectangle(250+5*k,50+90*i,260+5*k,60+90*i);

}

整个函数是这样的:

void CTestDoc::reader(CDC *pdc, CDC *pdc1, int i)
{

clock_t start,end;
double var,var1;
CString s,s1,s2;
CPen pen(1,2,RGB(255,0,0));
CPen *oldpen=pdc1->SelectObject(&pen);
CBrush bursh1(RGB(255,0,0));
CBrush *oldbrush1=pdc->SelectObject(&bursh1);
start=clock();
var=(double)(start-0)/1000;
s.Format("%6.3f",var);
pdc1->TextOut(550,40+40*i,s);//输出开始时间
pdc1->TextOut(620,40+40*i," ");
pdc->SetROP2(R2_NOT);//设置pdc的印象模式
for(int k=0;k<30;k++)
{
pdc->Rectangle(250+5*k,50+90*i,260+5*k,60+90*i);
for(int j=1;j<10000;j++)
for(int t=1;t<2000;t++);//延时
pdc->Rectangle(250+5*k,50+90*i,260+5*k,60+90*i);

}

s1.Format("%d",data);
pdc1->TextOut(700,40+40*i,s1);


end=clock();
var1=(double)(end-0)/1000;
s2.Format("%6.3f",var1);
pdc1->TextOut(620,40+40*i,s2);//输出结束时间
pdc1->SelectObject(oldpen);
pdc->SelectObject(oldbrush1);

}
dfyx 2003-12-02
  • 打赏
  • 举报
回复
我写的是一个多线程的绘图程序
每按一下按钮创建一个线程,就在视中绘图,图形从左边慢慢移到右边,并且打印出
他开始移动的时间和移动结束的时间,这些线程是互斥的。
在DEBUG方式下,它的功能和我希望的一样
但在release编译的那种方法下,
程序一运行就打印出了开始时间和结束时间,即开始时间和结束时间是一样的,
并且根本没有图形的移动。
只是显示出了OnDraw(CDC *pDC)函数中的初始界面
为什么呢?
ISunwu 2003-12-02
  • 打赏
  • 举报
回复
什么地方不一样?
dfyx 2003-12-02
  • 打赏
  • 举报
回复
我是用这种方法编译的:
2、把应用程序做成Release版的应用程序,具体步骤如下:
菜单Build->SetActiveConfigure,在弹出对话框中选择Win32Release,点OK,然后
菜单project->setting ,在弹出对话框的General属性页的Microsoft Foundation classes
下拉列表中选择User MFC in static Library,然后rebuildall,把生成的Release目录下


但它的功能确和我希望的不一样,而在debug下它却可以实现我希望的功能,
有高手知道这是为什么吗?
ljzcom 2003-12-02
  • 打赏
  • 举报
回复
用RELEASE来编译
sunsys 2003-11-28
  • 打赏
  • 举报
回复
up
hardstudylulin 2003-11-28
  • 打赏
  • 举报
回复
用Release编译一个版本试试
如用debug版本,需如下设置:
Project->Setting->General->Microsoft Foundation classes->User MFC in static Library
Ariesman 2003-11-28
  • 打赏
  • 举报
回复
用Depends打开你的应用程序看需要哪些动态连接库
u2m 2003-11-28
  • 打赏
  • 举报
回复
1.Release下编译
2.静态链接编译
工程->设置->General->Microsoft Foundation classes->User MFC in static Library
casio 2003-11-28
  • 打赏
  • 举报
回复
静态链接下Release方式编译
vcforever 2003-11-25
  • 打赏
  • 举报
回复
1、将程序用到的动态连接库拷贝到另一台机器上一份,就可以保证程序的正常运行
2、把应用程序做成Release版的应用程序,具体步骤如下:
菜单Build->SetActiveConfigure,在弹出对话框中选择Win32Release,点OK,然后
菜单project->setting ,在弹出对话框的General属性页的Microsoft Foundation classes
下拉列表中选择User MFC in static Library,然后rebuildall,把生成的Release目录下
的可执行文件拷贝到另一台机器上即可
3、用Installshield或其他工具制作程序安装盘,把程序需要的所有资源都打包,成功后
用安装盘在另一台机器上安装即可

希望对你有所帮助!
immensity 2003-11-25
  • 打赏
  • 举报
回复
把mfc42.dll或mfc42d.dll copy 到程序同一文件夹看看
richie_cn 2003-11-25
  • 打赏
  • 举报
回复
还有静态链接后,你要用Release编译的这样才行!
huanyun 2003-11-25
  • 打赏
  • 举报
回复
工程->设置->General->Microsoft Foundation classes->User MFC in static Library
huanyun 2003-11-25
  • 打赏
  • 举报
回复
编译得时候使用静态编译

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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