Witam
Napisałem zewnętrzną DLL w języku C i za pomocą PInvoke importuje ją do projektu w C#. Na moim komputerze wszystko działa jednak na każdym innym wyświetlany jest błąd. Najpierw wkleję poniżej kody.
Kod wywołujący funkcję z zewnętrznej DLL w C#:
[DllImport("SimpleScanA0DLL.dll", CharSet = CharSet.Ansi)]
private static extern int ScanB( string filename, int mode, int dpi, int width, int height);
public void StartScanA0()
{
string test = "test.bmp";
int k = ScanB( test, 0, 200, 400, 600);
if(k == -99)
{
slog.Info("Bląd przy otwieraniu biblioteki skanera.\n");
}
else if (k == 0)
{
slog.Info("Skanowanie zakonczylo sie powodzeniem.\n");
}
else
{
slog.Info("Wystapil nieznany błąd.\n");
}
}
Kod w języku C:
extern "C"
{
_declspec(dllexport) int __stdcall ScanB(char* filename, int mode, int dpi, int width, int height)
{
char m = 'C';
if (mode == 0) {
m = 'G';
}
return Scan(filename, m, dpi, width, height);
}
}
Komunikat błędu:
"System.DllNotFoundException: Nie można załadować biblioteki DLL 'SimpleScanA0DLL.dll': Nie można odnaleźć określonego modułu. (Wyjątek od HRESULT: 0x8007007E)
w SimpleScanA0.A0DLL.ScanB(String filename, Int32 mode, Int32 dpi, Int32 width, Int32 height)
w SimpleScanA0.A0DLL.StartScanA0() w C:\Users\A.Kordecki\Documents\simplescan\A0Scann\A0DLL.cs:wiersz 21"
Ma ktoś pomysł jak to rozwiązać?