我需要帮助一些旧的C ++代码来自/用于在Borland c ++ builder 6中编写的DLL,我必须在VS2008或VS2010中重新编译它。由于我们所有的测试都表明MSVC优化代码的速度提高了4倍以上(速度提升),因此我们的软件具有实时性要求。 我已经用std或win32api函数重写和/或包装了很多VCL代码,主要是AnsiString,事件,线程,列表的类,所以大多数代码编译并运行良好......
但是我遇到了一个障碍,我不知道如何单独解决,所以我求你寻求任何帮助。
我不知道如何实现可以模拟__closure
关键字的内容。我知道这是borland c ++ builder特定的关键字,并允许程序员使用通用指针来指向成员函数。我知道在本机c ++中这是不可能的,因为指向成员函数的指针不是常规函数指针,而是member_function_pointer=function_pointer-this
之类的东西。因此__closure
必须保存this
和member_function_pointer
。但我不知道如何实现这一目标。也不会怎么可能,因为我们的代码中的类不相互认识,这将违反面向对象编程原则的所有原则。
对不起我生锈的英语:S 感谢您的时间和帮助。
答案 0 :(得分:1)