お世話になります。
古いツールなのですが、VC++6で作成したDLLを、VB6のフォームアプリで呼び出し、文字列を受け渡して、VB6で表示させようとしています。
データは受け渡っているようなのですが、VB6のMsgboxで表示させようとすると、6桁のものが4桁になってしまいます。
ブレークポイントを入れて、デバッグしながら表示させると、ちゃんと6桁表示されます。
ソースコードは以下になります。
[VC6]
__declspec(dllexport) CHAR* _stdcall iNo(CHAR* eNo);
CHAR* _stdcall iNo(CHAR* eNo)
{
CHAR UkeMsg[96];
CHAR SndTxt[96];
memset(&UkeMsg, 0, sizeof(UkeMsg));
strcpy(SndTxt, eNo);
if (strcmp(SndTxt, "0000") == 0) strncpy(UkeMsg, "A00000", 6);
else if (strcmp(SndTxt, "1000") == 0) strncpy(UkeMsg, "B00000", 6);
else if (strcmp(SndTxt, "2000") == 0) strncpy(UkeMsg, "C00000", 6);
return(UkeMsg);
}
[VB6]
Private Declare Function iNo Lib "renkei_DLL" (ByVal eNo As String) As String
Private Sub Command1_Click()
Dim ccc As String
ccc = iNo("1000")
MsgBox (ccc)
End Sub
この"ccc"が、本来6桁なのが、4桁になってしまうというわけです。
環境はWindows7です。(あまり関係ないかもしれませんが)
それではよろしくお願いいたします。