zoukankan      html  css  js  c++  java
  • FreePascal Users guide 2.6 7.3.2 Missing calls / API incompatibilities

    Delphi 和Windows紧密地结合在一起,所以它的API引入了很多Windows的概念(比如文件搜索,打开和加载库文件等等)。

    FreePascal 被设计为可移植的,所以太贴近Windows的特性被舍弃了。下面是需要注意的要点:

    • FreePascal默认生成控制台应用程序。你需要在生成Windows GUI应用程序的时候显示启用这个特性:
    {$APPTYPE GUI}
    • Windows 单元提供了访问大多数Win32 核心API的功能。其中的一些调用通过指针(就像C语言)而不是通过引用来传递参数(var关键字)。针对大多数的这类调用,Free Pascal提供了重载版本。(译者注:这些重载版本使用引用来传递参数)
    • 宽字符串。众多的平台提供了不同的处理宽字符串编码和多字符集的方式,所以Free Pascal默认没有启用宽字符串管理器。FPC支持宽字符串,但是编码方式可能和Windows不同。为了在Unix/LINUX平台下正确地使用宽字符串管理器,你需要包含 cwstring 单元:这个单元使用一些必要的回调来初始化宽字符串管理器,这些回调使用C库函数来实现所有必需的宽字符串功能。
    • 线程。目前Free Pascal还没有在所有的平台上提供本地线程管理。在Unix平台上,FPC应用程序需要链接到C库来提供线程管理,也就是要包含cthreads单元来启用线程。
    • 一个被引用过很多次的例子是 SetLastOSError 调用,该调用不被支持,并且永远也不会。
    • 文件名大小写敏感性。Pascal是一门大小写不敏感的语言,所以 users 语句应当也是大小写不敏感的。Free Pascal 通过搜索小写的文件名来确保这一点。Kyli不这样做,所以如果同一个路径下存在两个只有大小写不同的文件时就可能产生问题。
  • 相关阅读:
    Qt5信号与槽新写法
    Qt获取当前时间
    奇妙的enum class,enum struct组合
    vs2010+qt4编译出现error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject等错误
    QTreewidget的使用
    Qt各版本,VS插件下载地址
    Qt按钮设置透明
    Qt全局坐标和相对坐标
    QTableWidget
    c++11中thread join和detach的区别
  • 原文地址:https://www.cnblogs.com/mopno1/p/4296436.html
Copyright © 2011-2022 走看看