|
I have a number of C++ classes that handle strings ( basic strings, command
strings, comma sep value strings, ... ). Nothing platform specific at all.
How can I best call the member functions of these classes from rpg? Can ILE
pass the "this" pointer needed when calling class member functions?
Here is one method that I have not yet tested, but I am sure works.
Write some static marshalling functions in C++ ( a static function, if I
have the terminology correct, does not have an implicit "this" pointer ).
The rpg code calls the marshalling code with a this pointer ( pointer to the
class object ) and also the arguments to the member function. The
marshalling function then calls the c++ class member function.
// CsvString - comma separated value string.
class CsvString : private string
{
public:
void AddValue( char* sValue ) ; // add to comma sep value string.
char* GetValue( int nIx ) ; // get vlu from comma sep vlu string.
char* GetString( ) ; // return the entire string.
} ;
// new and delete the CsvString object.
void* CsvString_New( ) ;
void CsvString_Delete( void* pCsvString ) ;
// marshall calls to the CsvString member functions.
void CsvString_AddValue( void* pThis, char* sValue ) ;
char* CsvString_GetValue( void* pThis, int nIx ) ;
char* CsvString_GetString( void* pThis ) ;
-Steve Richter
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.