I am getting the following error with POSE (running PalmOS 3.5).

"Start (1.0) called Palm OS routine #0xA0C7 (StrLen). This routine does not
exist in this version of the PalmOS."
Has anyone seen anything like this before? Is this a bug in POSE ore PalmOS
3.5.

StrLen is definitely defined and if you look at my code StrLen has been used
successful in statements above the bug statement.

There error occurs in the second call to my addCharArray() function when it
tries to StrLen().

Any comments would be appreciatd.

Edward Ing.

Code :
------------------
calling function:

char *buildHTTPRequest( char * host,  char *methodURL, char * content ){
 String * requestString;
 char contentLengthStr[12];
 char * contentLengthPtr;
 int contentLength = 0;
 char endLine [] = "\n";

 contentLengthPtr = contentLengthStr;

   if(content != NULL)
   {
   contentLength = StrLen(content);
  contentLengthPtr = StrIToA(contentLengthPtr, contentLength);
  }


 requestString = createString("");
 addCharArray(requestString, methodURL);
 addCharArray(requestString, endLine);
 //  header
 addCharArray(requestString, "Host: ");
 addCharArray(requestString, host);
 addCharArray(requestString, "\n");
 //  Length
 addCharArray(requestString, "ContentLength: ");
 addCharArray(requestString, contentLengthStr);
 addCharArray(requestString, "\n\n");

 addCharArray(requestString, content);
 addCharArray(requestString, "\n");


 return  requestString->string;
 }

Called Objects:
==================================

#include <StringMgr.h>
#include <MemoryMgr.h>
#include "String.h"


void addCharArray(String * string, char * string2){
 int size = StrLen(string2);
 string->string = (char *)MemPtrResize(string->string, size +
StrLen(string->string) + 1 );
 StrCat(string->string, string2);

}
void addString(String * string1, String * string2){
 int size = length(string1) + length(string2);
 string1->string = (char *)MemPtrResize(string1->string, size + 1);
 StrCat(string1->string, string2->string);
}

String *createString(char * stringVal ){

 String temp;
 String *string;
 string = (String *)MemPtrNew(sizeof(String));
 temp.string = (char *)MemPtrNew(1);

 setStringValue(&temp, stringVal);
 MemMove(string, &temp,sizeof(String));

 return string;
}

/*
String createString(void ){

 String temp;
 temp.string = (char *)MemPtrNew(1);

 StrCopy(temp.string, "");
 return temp;
}*/

char * getCharStr(String * string){
 return string->string;
}

void setStringValue(String * stringObj, char * string){

 int length = StrLen(string);
 if (StrLen(stringObj->string) < length)
 {
  stringObj->string = (char * )MemPtrResize(stringObj->string, length + 1);
 }
 StrCopy (stringObj->string, string);
}

void destroyString(String * string){

 MemPtrFree(string->string);
 MemPtrFree(string);
}

int length(String * string)
{
  return StrLen(string->string);
}





------------------




-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to