レコードに文字列を書き込むときには、Data Managerの関数を使いましょう
Palmでは、レコードのデータへはポインタを使ってアクセスできますが、書き込むときにはData Managerの関数を使わないと、プログラムが落ちます。
Data Manager以外の関数を使っても駄目なので、こういうのは悪い例。
MemHandle recordH = DmNewRecord(dbRef, &index, StrLen(str)); Char* recordP = MemHandleLock(recordH); StrCopy(recordP, str); // ここがNG MemHandleUnlock(recordH); DmReleaseRecord(MemoDBRef, index, true);
StrCopyを使わず、Data ManagerのDmStrCopy関数を使いましょう。
MemHandle recordH = DmNewRecord(dbRef, &index, StrLen(str)); Char* recordP = MemHandleLock(recordH); DmStrCopy(recordP, 0, str); // OK MemHandleUnlock(recordH); DmReleaseRecord(MemoDBRef, index, true);
以上、自分のための覚え書きでした。