将Spcomm封装到DLL中的问题(100分)

  • 主题发起人 主题发起人 wanbb
  • 开始时间 开始时间
W

wanbb

Unregistered / Unconfirmed
GUEST, unregistred user!
有谁可以给个框架? 有源代码更好.
我主要是不知道怎样将收到的数据发给调用DLL的用户

wanbb@163.net 谢谢
 
设计到两个知识点!
一,在DLL保存你要调用的窗口的句柄
二,通过WM_COPYDATA消息发送收到的字符串!
第一条 CreateMapViewFile等API,你可以参考作钩子程序的例子看看!
 

to NeutronDelphi: 我不是用winapi来做,是用spcomm
==================================

我已经做了发送,就是不知道该如何将收到的数据传递给调用者,
由于考虑到是可以让其它语言调用的,所以应该用Pchar型,
但这方面我不太会,谁可以帮忙提示提示? 多谢了
 
用pchar吗?
会出现乱码,我们的项目只好带上sharemen.
 
带上sharemen不太好吧, 我做的dll是需要给用户的,我不能要求用户一定用Delphi
 
呵呵,我们作的是应用,应用程序和dll都是自己的.
如果把dll给别人,那就要仔细了.
 
up

我看了以前的帖子,都说用Result:=Pchar(String);会产生内存泄漏,
但又好象没有什么特别有效的方法解决,我该怎么办? [red]大侠 Help Me![/red]
 
自己定义消息通知应用程序可以接受结果了!
在调用Dll的方法中:需要传入应用程序窗口的句柄作为参数
在发送自定义消息的时候,需要使用该句柄
SendMessage(FormHandle,WM_CallError,FCommand,e_LongData);
 
现在我不是窗口的问题,是在DLL中的Spcomm控件的onReceiveData事件中怎样将收到的数据
传送出去给调用者的问题, 我现在用的方法很傻:
var rdata:pchar; //全局
以下是Spcomm控件的onReceiveData事件中
var str:string;
... //处理收到的数据并转换成String
Rdata:=@Str[1];
再在传出的函数中将Result:=RDate;传出去,现在的情况是可以在程序中收到数据
但我觉得好象哪里有问题是的, 另外我查看了程序在每次调用DLL中函数后每3次占用的内存就会多个
1x K,是不是有内存泄露?
 
有没有内存泄漏,我们小组没有测试过.
我们遇到的问题是返回值会出问题,内部出现乱码.
 
我必须要避免内存泄漏的问题,因为可能要24h的取数据的
 
后退
顶部