私は再びブラッシュアップしていて、エラーが発生しています:
オブジェクトなしでメンバー関数を呼び出すことはできません。
私は次のように呼んでいます:
FxString text = table.GetEntry(obj->GetAlertTextID());
FxUChar outDescription1[ kCP_DEFAULT_STRING_LENGTH ];
IC_Utility::CP_StringToPString(text, &outDescription1[0] );
次の行:IC_Utility :: CP_StringToPString(text、&outDescription1 [0]);エラーが発生しています
私の機能は:
void IC_Utility::CP_StringToPString( FxString& inString, FxUChar *outString)
{
}
私はそれが私が見逃している単純なものでなければならないことを知っています。
CP_StringToPString
関数を記述した場合は、それをstatic
と宣言する必要があります。
static void IC_Utility::CP_StringToPString( FxString& inString, FxUChar *outString)
または、サードパーティコードの関数の場合は、IC_Utility
オブジェクトを宣言して呼び出す必要があります。
IC_Utility u;
u.CP_StringToPString(text, &outDescription1[0] );
メソッドは静的ではないため、インスタンスから呼び出す必要があります(エラーが言っているようなものです)。メソッドが他のインスタンス変数またはメソッドへのアクセスを必要としない場合は、おそらくstatic
と宣言するだけです。それ以外の場合は、正しいインスタンスを取得して、そのインスタンスでメソッドを実行する必要があります。
'static'キーワードを使用して関数を宣言する必要があります。
class IC_Utility {
static void CP_StringToPString( FxString& inString, FxUChar *outString);
クラス宣言で関数static
を宣言する必要があります。例えば.
class IC_Utility {
// ...
static void CP_StringToPString(FxString& inString, FxUChar *outString);
// ...
};