Столкнулся с проблемой в Visual Studio 2005 при использовании точки входа не в приложении, а в статической библиотеке.
Создаю два проекта lib и exe. Вот код из этих проектов:
Проект lib:
lib.h
#pragma once
#include <Windows.h>
class lib
{
public:
lib();
virtual~lib ();
virtual int run();
};
lib* getapp();
lib.cpp
#include "stdafx.h"
#include "lib.h"
extern lib* g_plib = NULL;
lib::lib()
{
if(g_plib)
g_plib=this;
};
lib::~lib()
{
if(g_plib==this)
g_plib=NULL;
};
int lib::run() {return 1;};
lib* getlib() {return g_plib;};
entryp.cpp
#include "stdafx.h"
#include "lib.h"
extern "C" int WINAPI _tWinMain(HINSTANCE,HINSTANCE,LPWSTR,int)
{
lib*plib=getlib();
return plib->run();
};
Проект exe:
exe.h
#pragma once
#include "lib.h"
#pragma comment (lib,"lib.lib")
class exe : public lib
{
public:
exe();
virtual~exe();
virtual int run();
};
extern exe g_exe;
exe.cpp
#include "stdafx.h"
#include "exe.h"
exe g_exe;
exe::exe(){};
exe::~exe(){};
int exe::run()
{
MessageBoxW (NULL,L"It's work!",L"Yahoo!",MB_OK);
return 1;
};
А он мне LNK2019: unresolved external symbol _wWinMain@16 referenced in function ___tmainCRTStartup MSVCRTD.lib.
Причём это же солюшэн в VS 2003 работает на ура.
Помогите плиз ламеру. Уже месяц пытаюсь найти выход.
Добавлена разметка — Кодт