#define BUILD_DLL
#include <windows.h>
#include "Dll.h"
#pragma hdrstop
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
//---------------------------------------------------------------------------
extern "C" char* __export getName()
{
return "ilyes";
}
Немогу dll сделать никак
http://www.codenet.ru/progr/bcb/dll.php
делаю так:
Dll.cpp
Dll.h
Main.cpp
И чето никак :(
Вроде бы делаю все по написаному в статье
делаю так:
Dll.cpp
Код:
Dll.h
Код:
extern "C" char* __export getName();
Main.cpp
Код:
#include "Dll.h"
typedef char* (__stdcall *pGetName)();
...
HINSTANCE dllp = LoadLibrary("Dll.dll");
if (dllp)
{
pGetName getName = (pGetName)GetProcAddress(dllp, "getName");
if (getName)
ShowMessage(getName());
}
else
ShowMessage("Косяки");
FreeLibrary(dllp);
typedef char* (__stdcall *pGetName)();
...
HINSTANCE dllp = LoadLibrary("Dll.dll");
if (dllp)
{
pGetName getName = (pGetName)GetProcAddress(dllp, "getName");
if (getName)
ShowMessage(getName());
}
else
ShowMessage("Косяки");
FreeLibrary(dllp);
И чето никак :(
Так в отладчике-то что видно. Не грузится dll? Нет твоего метода? Не правильно возвращает значение getName?
//main.cpp
#include "Dll.h"
#pragma comment(lib,"dll.lib")
int main()
{
ShowMessage(getName());
...
}
Правда насчет #pragma comment(lib,"dll.lib") не уверен есть ли такое в BCB - подключение статической библиотеки
Правда насчет #pragma comment(lib,"dll.lib") не уверен есть ли такое в BCB - подключение статической библиотеки[/QUOTE]
Такого в Билдере нет, он игнорирует эту мелкософтовскую директиву. Есть Project|Add to Project|*.lib e.t.c.
Прошу прощения - наврал, все работает:(
По ходу метод не находит, потому что если if (getName) убрать то ошибка.
[QUOTE=vitaly2003s]
#pragma comment(lib,"dll.lib")
[/QUOTE]
мне надо динамически подключать, без lib
возможно метод не совсем так называется
Код:
pGetName getName = (pGetName)GetProcAddress(dllp, [COLOR="Red"][/COLOR]"_getName");
Код:
pGetName getName = (pGetName)GetProcAddress(dllp, [COLOR="Red"][/COLOR]"_getName");
Урааа! Заработало! Спасибо!