help!程序编译运行问题!

jabill 2004-10-22 10:26:38
我做的程序概况:
a. 基于对话框界面
b. 使用了MSCOMM控间,实现简单的串口收发操作
c.
出现的问题:
A. debug编译通过,而且能正常运行完成操作。但release(Use MFC in a Static Library)编译出现一个警告,如下
LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF
B. 运行点击发出串口信号操作,结果串口没有发出任何信号
C. 拷贝到其它机器上,竟然运行不了(双击该程序,没有任何动作出现)

大家快来帮帮我啊,急死了!
...全文
124 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobob 2004-11-01
  • 打赏
  • 举报
回复
不用
Mr-Chen 2004-10-22
  • 打赏
  • 举报
回复
按Add to Project选项中Registered ActiveX Control选项然后在控件选择对话框中选择Microsoft Communictions Control,Version6.0,将通讯控件两个程序Mscomm.h和Mscomm.cpp加入project当中。
Mr-Chen 2004-10-22
  • 打赏
  • 举报
回复
如何手工来注册安装MSComm控件:
  第一步:将Mscomm.srg, Mscomm32.ocx,Mscomm32.dep三个文件复制到系统文件夹中。要注意的是,MSComm控件是要授权的,所以必须将其使用“执照”Licence 在注册表中登记注册,下一步就是注册方法。至于为什么要这样做,可以看看下面的网页:http://support.microsoft.com/support/kb/articles/q151/7/71.asp

  第二步:用Windows下的注册工具regsvr32注册该OCX控件,点击“开始”->"运行",再在中填入(假设操作安装在C盘,WIN2000):Regsvr32 C:\winnt\system32\Mscomm32.ocx

 第三步:在注册表中手工新建一个主键项:先在点击“开始”->"运行",再在中填入regedit命令打开注册表,找到HKEY_CLASSES_ROOT\Licenses,在其中添加主键
4250E830-6AC2-11cf-8ADB-00AA00C00905 并将内容设置为:
       kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun
(注:这项内容也可以用记事本程序打开Mscomm.srg文件看到)

jabill 2004-10-22
  • 打赏
  • 举报
回复
ft,我真是笨!
搞到最后竟然是最基本的问题,没有注册!谢谢上面两位的提醒!

不过,有什么方法可以让系统自己注册??
还有,在98下面也是这样注册吗?
eastred 2004-10-22
  • 打赏
  • 举报
回复
0cx需要注册。
在system32目录下执行
regsvr32 yourocx
mengjj 2004-10-22
  • 打赏
  • 举报
回复
拷貝MSCOMM32.OCX文件過去之后﹐還要注冊﹐在命令窗口書運行﹕


regsvr32 MSCOMM32.OCX
jabill 2004-10-22
  • 打赏
  • 举报
回复
我已经把MSCOMM32.OCX拷贝到机器的..\Winnt\system32里了,但是还是不行。
我把编译级别从3改为4,发现了还有两个系统生成的代码里的警告:
E:\Setting\mscomm.h(30) : warning C4100: 'pContext' : unreferenced formal parameter
E:\Setting\mscomm.h(26) : warning C4100: 'lpszClassName' : unreferenced formal parameter

代码就是在MSCOMM控件生成的类里:
virtual BOOL Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }

问题会不会在这里???
kulukyo 2004-10-22
  • 打赏
  • 举报
回复
还有前面的问题,应该和那个警告没关系,还是查查其他的地方
kulukyo 2004-10-22
  • 打赏
  • 举报
回复
拷到其他机器上运行不了,说明你的对话框没有创建成功,原因是其他机器上没有MSCOMM控件
jabill 2004-10-22
  • 打赏
  • 举报
回复
出现的问题C好像是我的误会,因为程序运行是的确有打开串口的!

但是主要是不能在其它机器上运行!

谢谢几位指点,但我还不是很明白。
/VERBOSE是什么?怎么用?

还有,我的程序使用了“char *temp=m_sBatch.GetBuffer(6);”这种东西,不知道是不是问题所在!
snaill 2004-10-22
  • 打赏
  • 举报
回复
应该不是这个警告的问题,你需要检查你的程序是不是有其他的问题,DEBUG的环境下,因为使用vc的缓存可能会掩盖一些错误
snaill 2004-10-22
  • 打赏
  • 举报
回复
all references to 'dynamic-link library' discarded by /OPT:REF

The linker discarded all packaged functions that referenced exports in dynamic-link library. As a result, dynamic-link library is not needed for execution of the image.

You may want to consider removing references to dynamic-link library to speed up the build.

Other occurrences of this warning can occur if an unused function in your code references a .dll export that the linker has discarded. Use /VERBOSE to see which of your functions the linker is discarding and then remove them from your code.

jabill 2004-10-22
  • 打赏
  • 举报
回复
那安装的机器上是不是要装.net framework?
  • 打赏
  • 举报
回复
用.Net直接打包成安装文件或者CAB,不用这么麻烦D!
jabill 2004-10-22
  • 打赏
  • 举报
回复
需要3个步骤这么复杂吗?还有Licence,头都大了!

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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