Eksport funkcji z DLL

Eksport funkcji z DLL
NP
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 12 lat
  • Postów:22
0

Mam taką funkcję w DLL:

Kopiuj
void StartRecording(bool State, HINSTANCE hInstance)
{
	if (State == true)
	{
		g_RecordHook = SetWindowsHookEx(WH_GETMESSAGE, &RecordProc, g_hInst, 0);
    }
    else
    {
        UnhookWindowsHookEx(g_RecordHook);
    }
 }

Chciałbym ją wyeksportować, ale nie wiem jak. Czy ktoś mógłby napisać potrzebny kod? Nie wiem też, co zmienić w dll.h. Na stronie http://cpp0x.pl jest artykuł o DLL i go sprawdzałem, ale nie działa. Szukałem w Google, ale znalazłem tylko eksport Delphi. O C++ nie ma mowy. Używam Dev-C++ i systemu Windows.

Gregory_Scot
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 14 lat
  • Postów:91
0

Jak byś poszukał to znalazłbyś np. to :/
http://4programmers.net/Forum/C_i_C++/52627-Tworzenie_DLL


Gregory_Scot
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 14 lat
  • Postów:91
0

Piszesz mi e-mail, że w tym linku nie ma nic o eksportowaniu funkcji, a linijka

LIBRARY asdf
EXPORTS
costam
costam_innego
evil_costam

to niby co?

Mi sięwydaje, że kolega dość obszernie wytłumaczył co i jak?

Tworzysz plik z rozszerzeniem def a w nim piszesz:

Kopiuj
LIBRARY    <nazwa_biblioteki>
EXPORTS

StartRecording	

edytowany 3x, ostatnio: Gregory_Scot
NP
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 12 lat
  • Postów:22
0

tak ale nie chodzi mi o .def, bo z tego co wiem trzeba wszystko zapisać w dllmain.cpp jako extern "C" {}

Gregory_Scot
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 14 lat
  • Postów:91
0
new Programer napisał(a)

tak ale nie chodzi mi o .def, bo z tego co wiem trzeba wszystko zapisać w dllmain.cpp jako extern "C" {}

Tu masz przykład: http://translate.google.pl/translate?hl=pl&langpair=en%7Cpl&u=http://en.wikipedia.org/wiki/Dynamic-link_library

Kopiuj
extern "C" __declspec ( dllexport ) double AddNumbers ( double a , double b )
 {
    return a + b ; powrót a + b;
}

czyli u Ciebie

Kopiuj

extern "C" __declspec ( dllexport ) void StartRecording(bool State, HINSTANCE hInstance)
{
    if (State == true)
    {
           g_RecordHook = SetWindowsHookEx(WH_GETMESSAGE, &RecordProc, g_hInst, 0);
    }
    else
    {
          UnhookWindowsHookEx(g_RecordHook);
    }
 }

O to chodziło? Działa? :/


edytowany 4x, ostatnio: Gregory_Scot
NP
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 12 lat
  • Postów:22
0

dzięki, jak zadziała, to napiszę.

edytowany 2x, ostatnio: new Programer
NP
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 12 lat
  • Postów:22
0

faktycznie, zadziałało. Masz u mnie duże piwo ;)

edytowany 1x, ostatnio: new Programer
Gregory_Scot
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 14 lat
  • Postów:91
1
new Programer napisał(a)

faktycznie, zadziałało. Masz u mnie duże piwo ;)

To gdzie mam się po to piwo zgłosić? ;)


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.