2017-09-26 8 views
1

VCLでFMXを使用しようとしています。 TFireMonkeyContainerというコンテナがあるようです。生成するhppに「許可されていないタイプ」というエラーが表示されます。ここではどのようにコードがエラーがC++プロジェクトのTFireMonkeyContainer

__property HWND FireMonkeyFormHandle = {read=GetHostedFMXFormWindowHandle, nodefault}; 

のように見えるところ基本的に私はgithubのから10.1シアトルプロジェクトをコンパイルし、それが発生したBPLとHPPを使用しています。

誰かがこのコンテナでC++で作業しましたか?

ありがとうございました。

+1

'FireMonkeyFormHandle'は' published'と宣言されています。 'HWND'は公開プロパティの有効なデータ型ではありません。また、プロパティは読み込み専用ですが、公開されているプロパティの場合は別です。著者はコーディングミスを犯しました。 'Parnassus.FMXContainer.pas'を変更して、' FireMonkeyFormHandle'を 'published'ではなく' public'にしてから、再コンパイルしてください。 –

+0

そのエラーを処理します。しかし今、私はfmxとvclの曖昧さのエラーを取得します。完全スコープのタイプを使用しても解決できないようです。 ideは節約を防ぎ、dfmは上がらない。おそらくfmxとvclをC++ビルダーで混在させることはできません。ありがとう。 –

+1

Delphiで生成されたHPPファイルの最下部には 'using namespace ...'ステートメントがあるため、同じ名前のVCLとFMXシンボルがグローバル名前空間にダンプされる可能性があります。 HPPファイルを調べて、使用する特定の 'NO_USING_NAMESPACE _... '条件を確認し、必要に応じてC++プロジェクトオプションでそれらの条件を定義します。あるいは、代わりに 'DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE'条件を定義してください。 –

答えて

1

これは最近のアップデートで解決され、C++プロジェクトの罰金に使用できるようになりました。 VCLとFMXヘッダーの両方が含まれている場合は(NO_USING_NAMESPACE_FMX_FORMSのコメントのように)注意が必要です。the latest from githubをプルしてください。

関連する問題