0

VisualStudio2010のフォームを含むC++。NET4.0プログラムを作成しています。フォームにGraphicsPathを追加しています。これが私のコードの一部です:

GraphicsPath^ gp=gcnew GraphicsPath();
gp->AddString("Hello world!", gcnew FontFamily("Arial"), (int) FontStyle::Italic, 26, (new PointF(100,100)), StringFormat::GenericDefault);

コンパイルするとエラーが発生します

 void System::Drawing::Drawing2D::GraphicsPath::AddString(System::String ^,System::Drawing::FontFamily ^,int,float,System::Drawing::PointF,System::Drawing::StringFormat ^)' : cannot convert parameter 5 from 'System::Drawing::PointF *' to 'System::Drawing::PointF'

だから私はそれをに変更します

 GraphicsPath^ gp=gcnew GraphicsPath();
gp->AddString("Hello world!", gcnew FontFamily("Arial"), (int) FontStyle::Italic, 26, *(new PointF(100,100)), StringFormat::GenericDefault);

より多くのエラーを取得します

1> LINK:エラーLNK2034:COFFシンボルテーブルと矛盾するメタデータ:symbol'?? 3 @ $$ FYAXPAX @ Z'(060000A7)は、MSVCURTD.lib(delete2.obj)の(0A00001A)と矛盾するメタデータを持ってい
ます1> LINK:エラーLNK2034:COFFシンボルテーブルと矛盾するメタデータ:symbol'?? 3 @ $$ FYAXPAX @ Z'(060000A7)のMSVCURTD.lib(ti_inst.obj)
1> MSVCURTD.lib(delete2.obj)の(0A000029)と矛盾するメタデータがあります:エラーLNK2020:未解決のトークン(0A00001A) "void __cdecl operator delete(void *)"(?? 3 @ $$ FYAXPAX @ Z)
1> MSVCURTD.lib(ti_inst.obj):エラーLNK2020:未解決のトークン(0A000029) " void __cdecl operator delete(void *) "(?? 3 @ $$ FYAXPAX @ Z)
1> D:\ Projects \ SmartProjector \ strike \ VS \ Debug \ CPPHelloWorld.exe:致命的なエラーLNK1120:2つの未解決の外部

単純なはずです。ポインタを実際に指すPointFに変換するだけですが、何らかの理由で複雑になります。

System :: Drawing :: Drawing2D :: GraphicsPath :: AddString()関数の正しい使用方法を教えてください。C#ではなくC++を使用していることを忘れないでください

4

1 に答える 1

2

やってみました:

gp->AddString("Hello world!", gcnew FontFamily("Arial"), (int) FontStyle::Italic, 26,  PointF(100,100), StringFormat::GenericDefault);

これは少なくとも正しいメソッド シグネチャです

于 2012-05-17T14:18:41.473 に答える