Prototyping C function cvthc in RPGLE
H DftActGrp(*NO) Option(*SRCSTMT)             
H bnddir('QC2LE')            
D CharToHex       PR                  ExtProc( 'cvthc' )            
D  CTHHex                         *   value                         
D  CTHChar                        *   value                         
D  CTHCharSize                  10I 0 value                         
                                                                    
D charval         S             26a   inz('ATEST123')               
D hexval          S             52a                                 
C                   callp     CharToHex (%addr(hexval)          
C                                       : %addr(charval)        
C                                       : %size(hexval)) 
Complete source Code for Testing. You can put in debug and check.
H DftActGrp(*NO) Option(*SRCSTMT)                                      
H bnddir('QC2LE')                                                      
                                                                       
D HexToChar       PR                  ExtProc('cvtch')                 
D  HTCChar                        *   value                            
D  HTCHex                         *   value                            
D  HTCCharSize                  10I 0 value                            
                                                                       
D CharToHex       PR                  ExtProc( 'cvthc' )               
D  CTHHex                         *   value                            
D  CTHChar                        *   value                            
D  CTHCharSize                  10I 0 value                            
                                                                       
D charval         S             26a   inz('ATEST123')                  
D hexval          S             52a                                    
                                                                       
C                   callp     CharToHex (%addr(hexval)                 
C                                       : %addr(charval)               
C                                       : %size(hexval))               
                                                                       
C     charval       dsply                                              
C     hexval        dsply                                              
                                                                     
C                   callp     HexToChar (%addr(charval)              
C                                       : %addr(hexval)              
C                                       : %size(charval)*2)          
                                                                     
C     charval       dsply                                            
C     hexval        dsply                                            
                                                                     
C                   eval      *inlr = *on         
1 comment:
Add %Trim to last parameter (length parameter) else error
Post a Comment
NO JUNK, Please try to keep this clean and related to the topic at hand.
Comments are for users to ask questions, collaborate or improve on existing.