c++ type conversion between std::string and System::String^

Discussions and Tech Support related to automating the iMacros Browser or Internet Explorer from any scripting and programming language, such as VBS (WSH), VBA, VB, Perl, Delphi, C# or C++.
Forum rules
Before asking a question or reporting an issue:
1. Please review the list of FAQ's.
2. Use the Google search box (at the top of each forum page) to see if a similar problem or question has already been addressed. This will search the entire contents of the forums as well as the iMacros Wiki.
3. We can respond much faster to your posts if you include the following information:


Answering your own posts (e.g. attempting to "bump" your topic) drops your topic from the list of unanswered threads, so it may actually receive less views.
Post Reply
Posts: 1
Joined: Mon Jul 02, 2018 4:57 pm

c++ type conversion between std::string and System::String^

Post by andrew » Mon Jul 02, 2018 6:06 pm

EDIT -- I found the answer here: https://stackoverflow.com/questions/353 ... -stdstring

Hi! I'm trying to write a c++ script that takes an excel (.csv) file as input. For background, I'm on Windows 7, am using the iMacros browser, and am running version 12.0.501.6698.

I can read the input into a std::string and parse that easily, but cannot do the same with System::String^. However, all the iMacros commands don't take std::string as input — they take System::String^. The issue is that I can parse std::string, but can't run iMacros commands with it. On the converse, I can't parse System::String^, but can run iMacros commands with it.

For example: (assume all variables are defined, etc.)

Code: Select all

std::string normalString  = "CODE:URL GOTO=https://www.google.com/"; // creates a normal string
System::String^ clrString = "CODE:URL GOTO=https://www.google.com/"; // creates a clr String

app->iimPlay(normalString,  TIMEOUT); // doesn't compile b/c iimPlay takes System::String as input
app->iimPlay(clrString, TIMEOUT); // works fine

getline(inputFile, normalString); //works fine, getline sets normalString to a line from inputFile
getline(inputFile, clrString); // doesn't compile

clrString = normalString; //also doesn't compile
This is the same for cstrings/char arrays.

Is there a way to convert from std::string/cstring/char array to System::String^? Thanks!
Post Reply