Проблема в VS 2005, ктоторой нет в VS 2003
От: Propheta Украина http://www.domashney-stranici.net
Дата: 03.01.08 01:34
Оценка:
Столкнулся с проблемой в 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 работает на ура.

Помогите плиз ламеру. Уже месяц пытаюсь найти выход.
Добавлена разметка — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.