Мне нужна помощь с некоторым старым кодом C ++ из / для DLL, который был написан на Borland C ++ Builder 6, я должен перекомпилировать его в VS2008 или VS2010.Так как все наши тесты показали, что MSVC оптимизирует код более чем в 4 раза лучше (по скорости), чем Borland Builder ... И наше программное обеспечение предъявляет требования в реальном времени.Я переписал и / или упаковал много кода VCL с функциями std или win32api, главным образом, для классов AnsiString, событий, потоков, списков, поэтому большая часть кода компилируется и работает хорошо ...
Но я пришел кбарьер, который я не знаю, как решить в одиночку, поэтому я прошу вас о любой помощи.
Я понятия не имею, как я могу реализовать что-то, что может имитировать ключевое слово __closure
.Я знаю, что это ключевое слово Borland C ++, позволяющее программисту использовать общий указатель на функцию-член.Я знаю, что это невозможно в нативном c ++, так как указатель на функцию-член не является обычным указателем на функцию, а что-то вроде member_function_pointer=function_pointer-this
.Так что __closure
должны сохранить this
и member_function_pointer
.Но я не знаю, как этого добиться.Как бы это ни было возможно, поскольку классы в нашем коде не знают друг друга, и это нарушило бы все принципы хороших принципов объектно-ориентированного программирования.
Извините за мой ржавый английский: S Спасибо за вашвремя и помощь.