passage d'une string dans une DLL
Bon voici mon code:
code qui appelle la dll
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
|
void CUSEMFCDlg::OnTry_CLICKED()
{
// code to test Test.dll function:
// code to display Number
int n = fnTest();
char sResult[45];
sprintf(sResult, "The Number in the DLL is %d", n);
MessageBox(sResult, NULL, MB_OK);
/* // code to sisplay a String
string s;
s = fnTestCh();
MessageBox(s.c_str(), "Traitement string", MB_OK);
*/
/* //code to pass a param
string param = "center me!";
string p = fnTestParam(param);
MessageBox(p.c_str(), "Traitement param", MB_OK);
*/
//code to pass a pointer
string param = "HTML Text";
CenterMe(¶m);
MessageBox(param.c_str(), "Traitement param", MB_OK); |
et voici le code dans la DLL (Test.dll)
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
|
TEST_API int fnTest()
{
return 492;
}
TEST_API string fnTestCh(void)
{
string c_txt = "<% Bonjour %>";
return c_txt;
}
TEST_API string fnTestParam(string _string)
{
string c_txt = "<center>" + _string + "</center>";
return c_txt;
}
TEST_API void CenterMe(string* _str){
string var ;
var = "<CENTER>" + *_str + "</CENTER>";
*_str = var;
} |
j'ai le test.h de la Dll dans le project usedll et
toutes les fonctions:
- fnTest()
- fnTestCh(void)
- fnTestParam(string _string)
fonctionnent mais renvoient un erreur juste apres et je dois quitter l'application.
Citation:
debug assertion failed
cette erreur n'apparait pas lorsque j'utilise fntest (qui ne renvoie qu'un INT)
cela dit lorsque j'essaye de passer un param et d'appeler centerme, j'ai l'erreur direct.
voila.
Sinon, mon but c'est de creer une DLL ActiveX (pour l'utiliser en ASP)
arretez moi dessuite si je ne suis pas sur le bon chemin !! parceaue DLL ActivX en C++ je ne trouve pas bcp de doc dessus, c plutot VB.
en tout cas merci bien :wink:
Essaye avec les CString chez moi ça marche
Essaye avec les CString chez moi ça marche