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

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -