北洋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的字符串处理函数源文件也会提示一些砌块的错误哪位高手能帮忙解释下?

解决方案 »

  1.   

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

  2.   

    // 鉴于你说是d2010才-1,可以推断 dll 中 POS_Open 方法是使用 AnsiString 的POS_Open( AnsiString('COM1') ,9600, 8, POS_COM_ONESTOPBIT,0, 1);
      

  3.   

    POS_Open函数声明的string/pchar改成ansistring/pansichar
    如果对Delphi2010和Delphi7的字符串有区别都搞不清就不要升级系统了.对你来说风险太大