× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



ouch.

Something you could try is defining the string parm in the RPG procedure definition as follows:

D Parm * value options(*STRING)

Then in the C/C++ code you can do this:

extern "C" int DoSomething(char * szParm)
{
string myStringParm = szParm;

// move on into OOP world here...

It keeps the RPG relatively simple, and the char *'s are converted to strings as early as possible. A few extra copies of the data, but in most cases the simplicity is worth it (imo).

Marc


On 2/13/2014 9:43 AM, Tim Bronski wrote:
Yes, but the statement was the attempt to create a c++ string from a
parameter passed from....an RPG program!

On 2/13/2014 6:36 PM, Marc Hunter wrote:
While I empathize, and certainly C++ also allows you to shoot yourself
in the foot, the code shown is philosophically (imo) a mix of C and C++
in that it uses char *s. Assuming both variables are strings then I
would code it as follows and avoid dipping into 'dangerous' char *
territory.

partName.insert(0, userName.substr(start, len));

(If I'm understanding the objective correctly)

Marc

On 2/13/2014 9:02 AM, Tim Bronski wrote:
On 2/13/2014 5:23 PM, Jon Paris wrote:
I would have said that C was brilliant if your aim was to shoot yourself in the foot and C++ does a better job of protecting you.
Hi Jon, I would have let that slide but I've just finished tracking down
a bug where c++ was using a different overloaded string function than
the one intended. Here's what the statement should have been:
partName.insert(0, &userName[start], len);
but instead it was
partName.insert(0, userName[start], len);

This compiles fine but the result was heinous...the c compiler would
have caught that one.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.