Bonjour,
je cherche à créer une DLL qui inclut des fonctions et structures de la SDK (Dshow.h) pour ne pas avoir à inclure celle-ci dans mon projet.
voici le .h (DLL.H):
et voici le .cpp (DLL.cpp):Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #ifdef DLL_EXPORTS #define DLL_API __declspec(dllexport) #else #define DLL_API __declspec(dllimport) #endif // Cette classe est exportée de DLL.dll class DLL_API CDLL { public: CDLL(void); // TODO*: ajoutez ici vos méthodes. }; extern DLL_API IGraphBuilder *_pGB;
La compilation fonctionne et IGraphBuilder est bien vu comme une structure.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #include "stdafx.h" #include <Dshow.h> #include "DLL.h" #ifdef _MANAGED #pragma managed(push, off) #endif BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } #ifdef _MANAGED #pragma managed(pop) #endif // Il s'agit d'un exemple de variable exportée DLL_API int nDLL=0; DLL_API IGraphBuilder *_pGB;
J'inclus ensuite DLL.h dans mon projet et pas Dshow.h (c'est le but).
je link le .lib.
J'ai vérifié avec dependancy ma DLL est bien dans le projet mais IGraphBuilder n'est plus vu comme une structure (int par défaut) et je ne peux donc pas utiliser de structure de ce type.
Pourriez vous m'indiquer ou ai-je commis une (grossière certainement) erreur ?
Merci d'avance