visual c++ - Converting a String^ to a const void* in C++ -


i using c++/cli create gui controls external gpib device. gui has textbox user can enter voltage. able read voltage textbox this...

string^ v1 = textbox1->text; 

assuming user enters decimal number textbox, need concatenate value other text , produce const void* pass gpib library command.

so question how can convert string^ const void*? able convert string^ double this...

double volt1 = double::parse(textbox1->text); 

so solution how convert double const void* work well.

it's odd external library wants const void* , not character pointer, assuming wants ansi string, can use marshal_context class convert string^ const char* pointer:

// marshal_context_test.cpp // compile with: /clr #include <stdlib.h> #include <string.h> #include <msclr\marshal.h>  using namespace system; using namespace msclr::interop;  int main() {    marshal_context^ context = gcnew marshal_context();    string^ message = gcnew string("test string marshal");    const char* result;    result = context->marshal_as<const char*>( message );    delete context;    return 0; } 

(example code taken here).

of course if library wanted unicode string use marshal_as<const wchar_t*> instead.


Comments

Popular posts from this blog

twig - Using Twigbridge in a Laravel 5.1 Package -

jdbc - Not able to establish database connection in eclipse -

Kivy: Swiping (Carousel & ScreenManager) -