Структура проекта VC++2008
Итак, мне нужно в проекте (Win Forms) использовать некую функцию объявленную в заголовочном файле, ну к примеру TextOutA из windows.h.
Для этого я подключаю дерективой #include нужный заг. файл в файле ProjectName.cpp.
И о ужас, если я попробую использовать эту ф-ю в обработчике события, скажем, нажатия кнопки (который находится в ProjectName.h) - то компилятор выругается (undeclared identifier) сказавши что функция не объявлена.
Увожаемые товарищи, каким же образом мне подключить хедер и где чтобы я мог использовать функции объявленные там в обработчиках событий визуальных компонентов?
LPCSTR str1;
LPCSTR str2;
str1 = "Form1";
str2 = "Form1";
FindWindowA(str1,str2);
}
А вот ошибка:
1>pzdc.obj : error LNK2019: unresolved external symbol "extern "C" struct HWND__ * __stdcall FindWindowA(char const *,char const *)" (?FindWindowA@@$$J18YGPAUHWND__@@PBD0@Z) referenced in function "private: void __clrcall pzdc::Form1::button1_Click(class System::Object ^,class System::EventArgs ^)" (?button1_Click@Form1@pzdc@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
Со многими функциями из бибилиотеки windows.h аналогичные ошибки. Я даже представить немогу, в чем проблема. Код работал в билдере стабильно, и компилировался без ошибок. Подскажите в чем проблема, пожалуйста.
Итак, мне нужно в проекте (Win Forms) использовать некую функцию объявленную в заголовочном файле, ну к примеру TextOutA из windows.h.
Зачем в .NET использовать GDI функции, когда там из коробки есть GDI+ в лице класса System.Drawing.Graphics - это первое. А второе - зачем в WinForms приложении использовать MC++ когда есть нормальные языки вроде C#, VB.NET и Boo?
З.Ы. Вообще создается впечатление, что это такая форма программерского мазохизма - использование MC++ для построения оконных приложений.
Именнто так и есть это глупо, Вы наверное подумали что я этим на жизнь зарабатываю - нет, я студент одного из вузов, и это одно из "учебных" заданий. Изначально задача стояла использовать именно ф-ю TexOut для приложения MFC которая должна была быть написана в VC 6.0 однакого такого старья на сайте майкрософт я ненашел, и скачал 2008 студию. А весь учебный материал что нам дали для шестой студии и для приложений MFC. Поэтому я в полной мере осознаю всю глупость ситуации, однако надо делать именно так. Единственной моей "инициативой" является написание WinForms-приложения, вместо MFC.
Так вот идите и читайте, дабы не путать дрель и молоток. Помесь управляемого и не управляемого кода всегда чревата кучей не объяснимых ошибок. Во вторых, как бы вы сами не догадываетесь, что винформы и мфц это разные вещи и в задании не зря указано мфц?
Именнто так и есть это глупо, Вы наверное подумали что я этим на жизнь зарабатываю - нет, я студент одного из вузов, и это одно из "учебных" заданий. Изначально задача стояла использовать именно ф-ю TexOut для приложе
Юзаете Visual C++ 2008 Express? Если так, то в ней совсем нет шаблонов для MFC приложений. Если вы изучаете MFC (что, право, несколько бесмыссленно в виду ее моральной дряхлости) то используйте MFC шаблоны проекта из 2008 студии. Полноценную VS2008 можно взять с ДримСпарка, где Микрософт предоставляет инструменты разработки студентам и аспирантам совершенно бесплатно.
Персоналия: Эндрю Троелсен.
для начала, я бы посоветовал вам писать на мфц, как есть в задании. я так полагаю замечания о помеси неуправляемого кода и управляемого вы пропустили мимо ушей? читать можно Б. Пахомов С\С++ MS Visual C++ 2005, хотя соглашусь с хардкейзом, что приложения дотнет надо писать на С#. ну и дабы вы опять не сделали кривых выводов: пишите на мфц.