bonsoir,

Il se trouve que j'ai une fct dans une dll qu'il faut que je retrouve... jusque la pas de probleme mais si celle ci comporte des arguments et je me retrouve avec une erreur "Run type Failure#0"

mon dll.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifdef _WINDLL
#define DLLDEC __declspec(dllexport)
#endif

extern "C"
{
	
class DLLDEC test { public:
test(); ~test(); int lol;
}; DLLDEC test* TestDll(int nb);
}
mon dll.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include "test.h"

test::test() : lol(12)
{
}

DLLDEC test*  TestDll(int nb) 
{
	
std::cout << "allloooo : " << nb << std::endl; test* tmp = new test; std::cout << tmp->lol << std::endl; return (tmp);
}
et mon programme principal:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
include <windows.h>

class test
{
public:
	int lol;
};

typedef test* (WINAPI* RVALUE)(UINT);
static RVALUE g_RValue = NULL;

int main()
{
   
HMODULE hmodUser32 = LoadLibrary(TEXT("test.dll")); if (hmodUser32 != NULL) { g_RValue = (RVALUE) GetProcAddress(hmodUser32, "TestDll"); }
if (g_RValue == NULL) std::cout << "erreur load class" << std::endl; else { test* tmp = g_RValue(2); std::cout << tmp->lol << std::endl; }
if (hmodUser32 != NULL) FreeLibrary(hmodUser32); system("PAUSE"); return 0;
}
J'ai essayer de glisser des __stdcall un peu de partout mais rien a faire...
On peu d'aide serait cool ^^
bonne nuit