|
-----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Peter Dow Sent: Monday, August 11, 2003 12:59 PM To: RPG programming on the AS400 / iSeries Subject: Re: Value vs. Const >Thanks for the reply. I didn't know the iSeries had C++. Otoh, given what >little I know about C or C++, the code you posted looks like C. I dont think C allows pass by reference which is what the "&" in "char&" means. > The problem >is how you use it. Isn't your RPG code just getting the pointer to InChar, >not InData? Or is it just that it's Monday a.m. and my brain isn't ticking >over yet? InChar is just the name used in the prototype. It doesnt matter to the calling rpg proc. The prototype says the proc receives a const reference to the 1st argument. But C++ does not compile with ILE prototypes so the C++ reference parm does not have to be const. it just has to be a reference. >And what's a "mutable" pointer? that is fancy C++ speak for non const, that is changeable. -Steve >From: "Steve Richter" > here is an ile c++ function that will return a mutable pointer to an rpg > const variable: > > #include <stdio.h> > #include <errno.h> > void* GetPtrToArg( char& cIn ) > { > void* pVoid ; > pVoid = &cIn ; > return pVoid ; > } > ** ----------------------- fGetPtrToConst ------------------------- > d fGetPtrToConst pr * extproc('GetPtrToArg__FRc') > d InChar 32767a const options(*VarSize) > > ** ---------------------- fIfsWrite ----------------------------- > ** fIfsWrite - write string to IFS file > ** hInFile fComRef.hFile open ifs file handle > ** InData vstr(*) string to write to file. > pfIfsWrite b export > dfIfsWrite pi 10i 0 > d hInFile value like(fComRef.hFile) > d InData 32767a const varying options(*VarSize) > > d WriteCx s 10i 0 > d pData s * > /free > pData = fGetPtrToConst( InData ) ; > WriteCx = IfsWrite( hInFile: > pData: > %len(InData)) ; > return WriteCx ; > /end-free > p e > > > ( curious to know how else to write the proc that uses this const breaking > function ) --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.507 / Virus Database: 304 - Release Date: 8/6/2003 _______________________________________________ This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
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.