Problème de char en argument d'une fonction dans une dll
Bonjour,
J'ai créé une dll en c++/MFC que j'importe dans un projet vb.net. Dedans ce trouve une fonction qui nécessite un char en argument. Malheureusment, quand je l'appelle depuis vb, elle ne reçoit que le premier caractère de cette chaine.
Je suppose donc que le problème vient d'une différence de type entre vb et C++, j'ai aussi essayé avec tout des string, mais c'est pire.
Donc, ou est l'erreur? Quel type de variable est-il préférable d'utiliser?...
voici le début de mon code MFC
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
void fChangeChaine(char Chaine)
{
std::ofstream MedIRdbg("MedIRdbg.txt");
MedIRdbg << " ***BEGIN*** ";
wchar_t adr = 16;
wchar_t cmd = 12;
int iProtocol;
std::string sChaine = std::string(&Chaine);
...
} |
La manière dont je l'appelle en vb
Code:
1 2 3 4 5
|
<Runtime.InteropServices.DllImport("COMProt.dll", _
CharSet:=CharSet.Auto)> Public Shared Function _
fChangeChaine(ByVal cChaine As Char) As Integer
End Function |
J'obtiens la même chose en faisant
Code:
1 2 3
|
Private Declare Function fChangeChaine Lib "COMProt.dll" _
(ByVal cChaine As Char) As Integer |
Et je fais appelle à la fonction comme ceci
Code:
1 2 3 4 5 6
|
Private Sub BLaUne_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BLaUne.Click
Dim chaine As Char = "LaUne"
fChangeChaine(chaine)
End Sub |
Mais ma dll ne reçoit que "L"
D'avance merci