Как слинковать .def файл
От: mike_tihomirov  
Дата: 15.02.10 10:34
Оценка:
Доброго дня всем.
Вопрос такой: у меня MSVS 2005.
Создал .h файл с интерфейсом и .cpp с реализацией и .def файл

Есть прога LINK.exe. а вот как дальше быть?
Как-то с консолью надо чето командить, или в самой студии в командной
строке что то вводить.
На F5 выдает:
Код:

Command line warning D9028 : minimal rebuild failure, reverting to normal build.

и

Код:

fatal error C1902: Program database manager mismatch; please check your installation


к примеру:
//myinterface.h

Код:

struct I_MyInterface
{
virtual bool Init(int params) = 0;
virtual bool Release() = 0;
virtual bool DoStuff() = 0;
};
extern "C"
{
__declspec(dllexport) HRESULT GetMyInterface(I_MyInterface** pInterface);
typedef HRESULT (*GETINTERFACE)(I_MyInterface** pInterface);

__declspec(dllexport) HRESULT FreeMyInterface(I_MyInterface** pInterface);
typedef HRESULT (*FREEINTERFACE)(I_MyInterface** pInterface);
}
//=================
//myinterface.cpp

Код:

#include "I_MyInterface.h"
#include <objbase.h>

class CMyClass : public I_MyInterface
{
public:
bool Init(int params){cout << params << endl;}
bool Release(){return true;}
void DoStuff(){cout << "Use OK!" << endl;}

CMyClass(){}
~CMyClass(){}
};
//-------------
HRESULT GetMyInterface(I_MyInterface** pInterface)
{
if(! *pInterface)
{
*pInterface = new CMyClass;
return S_OK;
}
return E_FAIL;
}
//--------------------
HRESULT FreeMyInterface(I_MyInterface** pInterface)
{
if(! *pInterface)
return E_FAIL;
delete *pInterface;
*pInterface = 0;
return S_OK;
}
//===================
//myinterface.def

Код:

LIBRARY "myinterface"
EXPORTS
GetMyInterface
FreeMyInterface

или def. файл не правильно написал.
Вобщем я конкретно запутался.
Заранее спасибо за понимание!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.