Linkowanie DLL - program działa odpalany z IDE, z exe w folderze już nie

0

Witam wszystkich. Zazwyczaj zajmuję się programowaniem mikrokontrolerów w C, a przyszło mi napisać aplikację Windows i natrafiłem na drobny problem. Aplikację piszę w Visual C++ 2008 Express i konieczne jest w niej wykorzystanie biblioteki DLL. Szukałem rozwiązań jednak zadanie jest dosyć ciężkie bo względnie problemu nie ma.

Mianowicie dopóki nie opuszczę IDE wszystko jest OK, program działa tak jak tego oczekuję. Bibliotekę linkuję za pomocą dwóch linii kodu:

#include "MeDaqLib.h"
#pragma comment (lib, "MEDAQLib")

Jednak gdy chcę go uruchomić z pliku exe w folderze projektu wyskakuje komunikat błędu w momencie, kiedy w programie ma zostać wywołana funkcja z biblioteki (naciśnięcie buttona):
Unhandled exeption has occurred in your application. An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B).
Szczegóły z komunikatu wkleiłem tutaj: http://pastebin.com/XG8iDgHH

Dodatkowo link do pliku nagłówkowego biblioteki:
https://www.dropbox.com/s/21s0tw8wcynbri1/MeDaqLib.h

Próbowałem dodawać ścieżki itd. do właściwości projektu, ale zazwyczaj kończyło się to niemożliwością samego skompilowania kodu. Plik biblioteki też skopiowałem gdzie się da: główny folder projektu, foldery z exekiem itd. Wypróbowałem wszystkiego co mi przyszło do głowy i co znalazłem w sieci i nic nie pomogło.

Z góry dziękuję za pomoc

2

Prawdopodobnie nie zgadza się architektura exeka i dllki.
Jedno i drugie musi się zgadzać, czyli być albo x86, albo x64.

Jeśli piszesz pod C++/CLI (a na to z komunikatów wygląda) to we właściwościach projektu w “Common Language Runtime Support” powinno być /clr a nie /clr:pure ani /clr:safe.

0

WOW, nie spodziewałem się tak szybkiego rozwiązania problemu. Nie jesteś może z Poznania? Postawiłbym Ci zgrzewkę piwa. Faktycznie, nie zgadzała się architektura. Na szczęście DLL'kę mam w obu wersjach. Podmieniłem pliki i śmiga, nie zastanawiałem się nad tym kopiując pliki za pierwszym razem.
Dodatkowo zmieniłem z clr:pure na clr tak jak napisałeś.
Dzięki wielkie.

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