【问题标题】:Porting DLL code from Borland C++ Builder 6 to Microsoft Visual C将 DLL 代码从 Borland C++ Builder 6 移植到 Microsoft Visual C
【发布时间】:2011-02-24 14:28:52
【问题描述】:

我需要一些来自/for DLL 的旧 C++ 代码的帮助,这些代码是用 borland c++ builder 6 编写的,我必须在 VS2008 或 VS2010 中重新编译它。由于我们所有的测试都表明 MSVC 对代码的优化(速度)比 borland builder 好 4 倍以上……而且我们的软件具有实时要求。 我已经用 std 或 win32api 函数重写和/或包装了很多 VCL 代码,主要是用于 AnsiString、事件、线程、列表的类,因此大多数代码都可以编译并且运行良好...

但是我遇到了一个我不知道如何单独解决的障碍,所以我请求您提供任何帮助。

我不知道如何实现可以模拟__closure 关键字的东西。我知道这是 borland c++ builder 特定的关键字,并允许程序员使用指向成员函数的通用指针。我知道这在本机 C++ 中是不可能的,因为指向成员函数的指针不是常规函数指针,而是类似于 member_function_pointer=function_pointer-this 的东西。所以__closure必须保存thismember_function_pointer。但我不知道如何实现这一点。这也不可能,因为我们代码中的类彼此不认识,这将违反面向对象编程原则的所有原则。

我为我生疏的英语感到抱歉:S 感谢您的宝贵时间和帮助。

【问题讨论】:

    标签: c++ visual-studio-2008 visual-studio-2010 closures c++builder-6


    【解决方案1】:

    std::bindboost::bind 都可以解决问题。另请参阅问题“std::bind a member function to an object pointer”和“boost::bind and class member function”。您可能还想查看boost::functionstd::function

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2023-03-09
      • 2015-06-18
      • 1970-01-01
      • 2012-08-15
      相关资源
      最近更新 更多