Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проект не линкуется

284
18 сентября 2005 года
michael_is_98
587 / / 25.02.2005
Подскажите, пожалуйста, в чем проблема:
Создаю новый класс CGraph
Описываю интерфейс в файле graph.h

#if !graph_h
#define graph_h 1

#include <windows.h>

class CGraph
{
private:
HWND hWnd;
HDC hDC;

public:
CGraph(HWND);
~CGraph();
};

#endif

Реализация размещена в файле graph.cpp

#include "graph.h"

int status;

CGraph::CGraph(HWND hWnd_)
{
hWnd=hWnd_;

RECT Rect;
HDC hDC;

status=GetClientRect(hWnd,&Rect);
hDC = GetDC(hWnd);
}

CGraph::~CGraph()
{
status=ReleaseDC(hWnd,hDC);
}


После создаю указатель на экземпляр класса в одном проекте (предварительно включаю в проект файл graph.cpp) - файл parser.cpp (подпрограмма вызывается при нажатии на кнопку)

...
afx_msg void CMainWin::OnCommand_Risov()
{
CGraph *graph=new CGraph(this->m_hWnd);
}
...

Проект нормально компилируется, но при линковке появляется сообщение
parser.obj : error LNK2001: unresolved external symbol "public: __thiscall CGraph::CGraph(struct HWND__ *)" (??0CGraph@@QAE@PAUHWND__@@@Z)
Debug/parser.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

В чем дело? В файле graph.cpp используется обычное API, в проекте parser - MFC (в опциях стоит "Use MFC in a static library").
292
19 сентября 2005 года
Matush
726 / / 14.01.2004
Я смотрю уже кипит работа по созданию графиков разбора математической строки :)

На счет эррора, то Ты хочеш заюзать HWND окна сделанного на МФЦ из класса написаного на WINAPI. ИМХО ничего хорошего из этого не выйдет.
284
19 сентября 2005 года
michael_is_98
587 / / 25.02.2005
Цитата:
Originally posted by Matush
Я смотрю уже кипит работа по созданию графиков разбора математической строки :)

На счет эррора, то Ты хочеш заюзать HWND окна сделанного на МФЦ из класса написаного на WINAPI. ИМХО ничего хорошего из этого не выйдет.


Да, хорошая тема для студентов института...

С этим уже понятно. Просто если поставить после
#include <windows.h> строку #include <afxwin.h>, то все будет нормально компилироваться и линковаться. Почему - не знаю.
Поэтому MFC и API уживаются, дело в чем-то другом.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог