Kommunikation zw. C#-und VB-Prozessen

Hallo,

ich habe zwei Anwendungen, die miteinander kommunizieren müssen. Die eine ist in C#, die andere in VB6. Es sollen Strings ausgetauscht werden.

Mehrere Versuche via Win-API-Funktion SendMessage fruchteten nicht so recht.

In VB6 verschicke ich Nachrichten so:

Private Declare Function SendMessageByStr& Lib "user32" Alias "SendMessageA" \_ 
 (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal \_ 
 lParam As String)

[…]

Call SendMessageByStr(hwndTarget, MessageId, 4, "test")

In C# bearbeitet die WndProc-Funktion alle Nachrichten:

unsafe protected override void WndProc(ref Message m)
{
if (m.Msg == VB6\_TO\_CSHARP\_MessageId.ToInt32())
{
try
{
string url = new string((char\*)(m.LParam.ToPointer()), 0, m.WParam.ToInt32());
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
base.WndProc(ref m);
}

Aber leider löst diese eine Exception aus, weil der übermittelte String nicht ausgelesen werden kann.

Wer hat Beispielcode parat, um Strings (bzw. besser noch struct von strings und int) von C#- nach VB6-Anwendungen und umgekehrt zu schicken? Als Beispielprojekt kann folgendes von codeproject dienen:
http://www.codeproject.com/dotnet/VB6andVBNETWindowM… (im Beispielprojekt werden nur „einfache“ Messages verschickt ohne Strings).

Über gute Vorschläge oder Tips&Tricks freut sich,
André

Hallo

Schau mal hier:
http://www.codersource.net/csharp_com_interop.html

gruss
Giuseppe

gsharp.blogspot.com

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]