同一个动态链接库,同一个函数,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
[解决办法]
// 鉴于你说是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的字符串有区别都搞不清就不要升级系统了.对你来说风险太大