私は C++ が初めてで、以下の簡単な問題に直面しています。Visual C++ 2008 では、次のようなものを #define しようとしています
#define fromThis* toThisPtr
#define fromThis toThisObj
Linux で記述されたコードを移植しており、winapi に従って移植する必要があります。このようなエラーが発生しています。
error C2008: '*' : unexpected in macro definition
warning C4005: 'fromThis' : macro redefinition
see previous definition of 'fromThis'
前処理時に fromThis* と fromThis を再定義する必要があります。#define マクロで特殊文字は使用できませんか? このコードを解決するにはどうすればよいですか?
EDIT-1:これに対する可能な解決策を探しています。*fromThis を 'toThisPtr' に置き換えようとしています。推奨される解決策の 1 つは、typedef の使用です。私は以下のようにしました。
typedef toThisPtr fromThis*;
typedef toThisObj fromThis;
今、この解決策で私が得ているエラーはこれです:
エラー C2143: 構文エラー: ';' がありません '*' エラー C2059 の前: 構文エラー: ';' エラー C2040: 'iovec': 'toThisObj' は、'toThisPtr' とは間接性のレベルが異なります
typedef がこの問題の解決策になる可能性があります。fromThis* を toThisPtr に変更する標準的な方法は何ですか?