Je suis sur le point de développer une API qui devrait être distribuée avec une DLL. Comme je ne peux pas tester directement mon code écrit dans la DLL, je dois charger la DLL dans un test-projet et l'exécuter ici.C++ Chargement d'une DLL
J'utilise Visual Studios 2015. J'ai fait un TestProject et dans cela, je fait mon projet pour la DLL:
Solution-Tree "TestProject"
DLLProject
TestProject
exporter une fonction factice pour tester si je suis capable de charger la DLL:
#ifndef EXPORT
#define EXPORT __declspec(dllexport)
#endif
extern "C" {
EXPORT int dummy() {
return 5;
}
}
Puis, dans mon TestProject, je tente de charger la DLL, extraire la fonction et l'exécuter:
#include <windows.h>
#include <iostream>
using namespace std;
typedef int (__stdcall *dll_func)();
int main() {
HINSTANCE hGetProcIDDLL = LoadLibrary(TEXT("H:\\path\\to\\project\\Debug\\DLLProject\\DLLProject.dll"));
if (hGetProcIDDLL == NULL) {
cout << "DLL could not be loaded. " << GetLastError() << endl;
return;
}
dll_func f = (dll_func)GetProcAddress(hGetProcIDDLL, "create");
if (f == NULL) {
cout << "Factory function could not be resolved. " << GetLastError() << endl;
return;
}
cout << "Factory function returns: " << f() << endl;
}
je copiais presque tout de this question. Malheureusement, quand je lance mon TestProject, mes impressions sur la console: « DLL ne pouvait pas être chargée 4250. »
A ce stade, je ne sais vraiment pas quoi faire parce que l'erreur comme décrit here dit basiquement rien. Avec un peu de recherche, je ne pouvais pas obtenir de réponses ... espère que vous pouvez me aider: D
Grab [procmon] (https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx), définissez le filtre à votre test exe et voir ce que les opérations échouent fichier. – GSerg
Peut-être que je dois ajouter que le TestProject est un "Visual C++/CLR/CLR-Consoleprogramm" -Projet et le DLLProject est un "Visual C++/Windows/DLL (Windows Universal)" - Projet: D – Rockettomatoo
@GSerg tous vos processus moniteur me donne, est un "processus de création". Rien à voir de ma DLL – Rockettomatoo