System :: String to char * и обратно в C ++ / CLI: быстрее, чем маршал? - PullRequest
2 голосов
/ 30 декабря 2010

В проекте C ++ / CLI (Visual Studio 2010), как лучше всего преобразовать System :: String в char *, чтобы его можно было отправить в системную функцию, и аналогичным образом преобразовать полученный char * в System :: Строка

Есть ли более быстрый способ, чем использование System :: Runtime :: InteropServices :: Marshal class?

1 Ответ

2 голосов
/ 30 декабря 2010

char* или wchar_t*?const или нет?Если вам действительно нужен const wchar_t*, то вы можете сделать это довольно быстро с помощью PtrToStringChars из vcclr.h, который не повлечет за собой никакого подслушивания при копировании (однако вам все равно придется закреплять результат).

Если пойти по другому пути, вы, вероятно, не сможете значительно выиграть Marshal, System::String хотя и имеет конструкторы, которые принимают указатели.

...