将DLL代码从Borland C ++ Builder 6移植到Microsoft Visual C

我需要帮助一些旧的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 感谢您的时间和帮助。     
已邀请:
std :: bind或boost :: bind应该可以解决这个问题。另请参阅问题“std ::将成员函数绑定到对象指针”和“boost :: bind和类成员函数”。您可能还想查看boost :: function或std :: function。     

要回复问题请先登录注册