我有一个带有 TClientSocket 组件的 DLL,它用于与电话系统机器通信。DLL 在导出方法中只有 PChar 参数,并且不使用包。
当我使用 Delphi 应用程序加载 DLL 时,所有事件都正常工作,到目前为止没有问题。
我的客户正在从控制台 Win32 Cobol 程序调用此 DLL,并且 TClientSocket 在事件发生时不会触发事件,它使用主循环调用 DLL 中的检查方法来知道是否有任何从电话系统返回,如果它返回 OK 然后调用 Get 方法,这就是问题发生的地方:
在 TClientSocket.OnRead 事件中,我调用了 TClientSocket.Socket.ReceiveText,并且有几个来自服务器应用程序的返回,这让我觉得只有当我从 DLL 调用一个方法时才会触发该事件,而 TClientSocket 在缓冲。
问题是我找不到任何分隔符来拆分此返回。
我怎样才能解决这个问题?有什么我可以添加到我的 DLL 以确保每次不从 Delphi 程序调用 OnRead 事件时都会触发它吗?