MSComm32.ocx的分發問題.請教各位如何解決.(100分)

  • 主题发起人 主题发起人 Tyan
  • 开始时间 开始时间
T

Tyan

Unregistered / Unconfirmed
GUEST, unregistred user!
我在Delphi5中引入Vb5中的MSComm32.ocx做了一個向串口中發字節的程序.
我在Delphi5環境中打開該工程,運行.程序向串口發送字節數組.一切正常.
但如果我直接執行工程生成的EXE文件向串口發送字節.則會發生丟失字節或有時根本無數
據送出的問題.
我用安裝向導做的發布程序安裝在新機器上同樣也有這個問題.
但在IBM或Acer的品牌機上安裝即可正常發送.這一點我一直都搞不清楚為什么?難道這就是
品牌機的優勢嗎?
還有一點重要的是.在我開發用的機器上,也是我自己早期裝的機器.只有在這一台機器上
可以直接運行EXE文件來向串口發送數據.

這究竟是為什么?專家們幫我想想辦法吧.我真的急用.謝謝你們了.
 
在别的机器上将mscomm32.ocx注册一下就可以了。
 
用regsvr32 MSComm32.ocx注册一下就可以了
 
你没有注册这个控件,手工注册可以利用 Tyrael 所说的,程序注册可以用下面的:
//自定义ocx控件注册函数
function OLERegister(strFileName : STRING) : BOOLEAN;
type
TOleRegister = function : HResult;
var
hLib : THandle;
fnAdr: TFarProc;
begin
Result := FALSE;
hLib := LoadLibrary(PCHAR(strFileName));
if (hLib > 0) then
begin
try
fnAdr := GetProcAddress(hLib, pchar('DllRegisterServer'));
if (fnAdr <> nil) then
Result := (TOleRegister(fnAdr) >= 0);
finally
FreeLibrary(hLib);
end;
end;
end;
例如: OLERegister('c:/Tyan/MSComm32.ocx);
 
但是我在IBM,Acer的品牌機上直接用我做的安裝盤安裝又怎么可以呢?
還有就是我在不可以發送的機器上用Regsvr32 C:/windows/system/mscomm32.ocx登記了通
信控件.也還是不可以發送呢?
但在Delphi的運行環境中就可以了.不管是在普通機器上還是品牌機器上都可以了.
這是為什么?請各路高手指點.
 
to tyan:我想要MSComm32.ocx的使用说明,但是没有msdn,你能把它的使用说明粘贴
下来发一份给我吗?能不能将你编的程序的源码给我学习一下,我想看一下怎样实现串口
的读写操作?望大哥帮忙?小弟不胜感激,得到后奉上100分,决不失言!
谢谢谢谢!
 
Tyan:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 
后退
顶部