У меня есть приложение С#, которое ссылается на dll VB6. Когда я передаю null из С# в функцию dll VB6, значение null преобразуется как значение Empty (value) в VB6 вместо Nothing (object). Например:
// function in vb6 dll that referenced by c# app
Public Sub TestFunc(ByVal oValue As Variant)
{
...
if oValue is Nothing then
set oValue = someObject
end if
...
}
// main c# code
private void Form1_Load(object sender, EventArgs e)
{
object testObject = new object();
testObject = null;
TestFunc(testObject);
}
Когда я передаю объект (но не null), он будет передан в объект VB6 как объект. Но когда null передается в vb6, он становится значением типа Empty, а не типом объекта Nothing. Кто-нибудь знает почему? и есть ли в любом случае я могу заставить null как ничего в VB6 при передаче из приложения С#?
Большое спасибо.