2012-05-17 2 views
0

Я пишу программу C++. NET 4.0, которая включает форму в Visual Studio 2010. Я добавляю GraphicsPath к Форма. Вот часть моего кода:Преобразование 'Система :: Рисование :: PointF * to' System :: Рисование :: Ошибка PointF

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

Compile, и я получаю сообщение об ошибке

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) имеет несогласованные метаданные с (0A00001A) в MSVCURTD.lib (delete2.obj)
1> LINK: ошибка LNK2034: метаданные, не соответствующие таблице символов COFF: символ'? 3 @ $$ FYAXPAX @ Z '(060000A7) имеет несогласованные метаданные с (0A000029) в MSVCURTD.lib (ti_inst.obj)
1> MSVCURTD.lib (delete2.obj): ошибка 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 нерешенных внешних

Это должно быть простым, просто преобразовать указатель на PointF, на который он фактически указывает, но все становится сложно по какой-то причине, я не знаю.

Не могли бы вы рассказать мне правильный способ использования функции System :: Drawing :: Drawing2D :: GraphicsPath :: AddString()? Помните, я использую C++, а не C#

+0

Я не вижу разницы между двумя линиями, также это удалось C++, а не C++ – lezebulon

ответ

2

Вы пробовали:

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

это, по крайней мере, правильный метод подпись

+0

Я пробовал и компилирует. Спасибо, но строка не отображается в форме ... – YankeeWhiskey

+2

@YankeeWhiskey: Ну, это другая проблема. Вы даже рисуете его? – leppie

+0

Все еще работает над этим – YankeeWhiskey