0

我正在编写一个涉及 Visual Studio 2010 中的表单的 C++.NET 4.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 符号表不一致:符号 '??3@$$FYAXPAX@Z' (060000A7) 的元数据与 MSVCURTD.lib(delete2.obj) 中的 (0A00001A) 不一致
1>LINK:错误LNK2034:元数据与 COFF 符号表不一致:符号 '??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\scratch\VS\Debug\CPPHelloWorld.exe : 致命错误 LNK1120: 2 unresolved externals

它应该很简单,只需将指针转换为它实际指向的 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 回答