读书人

同一个动态链接库同一个函数Delph

发布时间: 2013-03-19 17:22:05 作者: rapoo

同一个动态链接库,同一个函数,Delphi 7 和Delphi 2010执行结果却不同
北洋POS打印机动态链接库POSDll.dll

其中一个函数
POS_Open('COM1',9600, 8, POS_COM_ONESTOPBIT,0, 1);

在Delphi 7中正常,返回值1001,表示成功打开端口;

在Delphi 2010中却不可以,返回值-1,表示打开端口失败。

另外总感觉Delphi 7和Delphi 2010在字符等相关操作上有些不大一样,曾经写了关于加密、解密字符串的动态链接库,发现Delphi 7调用Delphi 2010动态链接库的时候报错
好像以前还遇到过Delphi 2010调用Delphi 7的字符串处理函数源文件也会提示一些砌块的错误

哪位高手能帮忙解释下?
[解决办法]
D7默认ANSI,D2010默认UNICODE
[解决办法]

引用:
有办法实现统一吗?让D7 与2010 都使用ANSI或UNICODE?

// 鉴于你说是d2010才-1,可以推断 dll 中 POS_Open 方法是使用 AnsiString 的

POS_Open( AnsiString('COM1') ,9600, 8, POS_COM_ONESTOPBIT,0, 1);
[解决办法]
POS_Open函数声明的string/pchar改成ansistring/pansichar
如果对Delphi2010和Delphi7的字符串有区别都搞不清就不要升级系统了.对你来说风险太大

读书人网 >.NET

热点推荐