Ladowanie DLL z wnetrza innego DLL.

0

Witam.
Piszac program do obslugi drukarki fiskalnej napotkalem na pewna przeszkode. Producent drukarki udostepnia biblioteke ServiceLibrary.dll, ja chcialbym stworzyc wlasna biblioteke (np. MyLibrary.dll) korzystajaca z funkcji pochodzacych z ServiceLibrary.
Prosze o podpowiedz dlaczego nie moge poprawnie zaladowac biblioteki ServiceLibrary wewnatrz biblioteki MyLibrary.dll?

0

Pewnie coś, źle robisz! Co tudno powiedzieć, wróżenie z fusów, napisałeś mam problem z biblioteką i nic więcej.
Najprostszą metodą jest dołączyć plik producenta statycznie do projektu (dodać plik ServiceLibrary.lib do projektu) i powinno zadziałać od kopa.

0

Wywoluje z Javy funkcje Java_c_DLL_func(JNIEnv*, jobject).

#include "c_DLL.h"
#include <stdio.h>
#include <windows.h>

typedef int (*FUNCTION) (int);

extern "C"
{
    JNIEXPORT void JNICALL Java_c_DLL_func (JNIEnv *, jobject)
    {
     HINSTANCE h = LoadLibrary("ThermalServiceLibrary.dll");
     if (h)
     {
          MessageBox(NULL, "zaladowano", "info", MB_OK);
     }
    }
}

Nie pojawia się messagebox - biblioteka nie laduje sie poprawnie.
A jak dodac statycznie dll do projektu?

0

Jest taka funkcja jak GetLastError, zwraca numer błędu. Wywołaj ją po LoadLibrary i zobacz w winerr.h co oznacza wartość, którą zwraca.

0

Ja bym sprawdził jaka nazwa odpowiada tej funkcji z ServiceLibrary. Różne kompilatory dodają dekoratory do nazw i wcale extern "C" w tym nie pomaga.
http://www.coding.comli.com/?p=71

1 użytkowników online, w tym zalogowanych: 0, gości: 1