关于MSCOMM控件的dll设计方法请教 ( 积分: 100 )

  • 主题发起人 主题发起人 神经蛋白质
  • 开始时间 开始时间

神经蛋白质

Unregistered / Unconfirmed
GUEST, unregistred user!
我用MSCOMM控件做串口通讯.现在我想把程序写成DLL.再去调用.就写了个打开端口的FUNCTION.
function Open_Com(ComPort: Integer): Integer
stdcall;
var
MSComm1:TMSCOMM;
begin
MSComm1:=TMSCOMM.Create(nil);
MSComm1.CommPort:=ComPort;
try
MSComm1.PortOpen:=true
//打开端口
result:=1
//打开端口操作成功
except
result:=-1
//打开端口操作失败
end;
end;

问题出现了.我用程序无法调用这个打开端口的DLL.中间有什么细节问题请知道的朋友指教.
这个打开端口DLL我需要能在不同的程序中使用.比如VC++,C#.应该怎么写?
 
我用MSCOMM控件做串口通讯.现在我想把程序写成DLL.再去调用.就写了个打开端口的FUNCTION.
function Open_Com(ComPort: Integer): Integer
stdcall;
var
MSComm1:TMSCOMM;
begin
MSComm1:=TMSCOMM.Create(nil);
MSComm1.CommPort:=ComPort;
try
MSComm1.PortOpen:=true
//打开端口
result:=1
//打开端口操作成功
except
result:=-1
//打开端口操作失败
end;
end;

问题出现了.我用程序无法调用这个打开端口的DLL.中间有什么细节问题请知道的朋友指教.
这个打开端口DLL我需要能在不同的程序中使用.比如VC++,C#.应该怎么写?
 
uses activex;

initialization
activex.CoInitialize(nil);
finalization
activex.CoUninitialize;
 
上面的这位大哥.你写的是什么意思?是要放在DLL文件还是EXE???
怎么没点用啊.
现在是DLL加载不成功.因为在DLL里面有个MSCOMM控件.我要怎么写这个DLL才能让VC能调用成功这个端口打开DLL~
 
把COM封装成DLL给VC或C#调用,还不如直接在VC或C#里调用COM,如果想把串口操作封装,还不如把API的串口操作函数封装。如果把COM封装了,在调用DLL前应先调用CoInitialize函数。
 
用DELPHI我还是能成功的.但VC就加载不成功.所以说有问题.
 
恩恩.要是实在不行的话那就只有换别的方法做了~再等待下!
 
多人接受答案了。
 

Similar threads

后退
顶部