Существующее приложение Visual C ++ выполняет следующий вызов;
BOOL bRet = pMyClass.CreateDispatch("BlahBlah.MyClass");
if ( !bRet )
{
// Error handling snipped
}
else
{
pMyClass.MyMethod();
pMyClass.ReleaseDispatch();
}
pMyClass - это класс, который, по-видимому, автоматически сгенерирован ClassWizard и наследуется от COleDispatchDriver.
Фактическая библиотека DLL, к которой она относится, - это библиотека VB6, и она переносится на C # как часть попытки отойти от VB в целом.
Мой вопрос ... есть ли что-то особенное, что мне нужно сделать, чтобы убедиться, что сборка C # будет работать так же, как и оригинальный модуль VB6? В настоящее время C # выглядит так:
[ComVisible(true)]
[ProgId("BlahBlah.MyClass")]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class MyClass
{
...
public void MyMethod()
{
...
}
}
Достаточно ли этого? Есть ли какие-либо ошибки, о которых нужно знать при настройке открытых строковых полей (не показано в коде) на MyClass?
Обратите внимание, что я не являюсь первоначальным автором этого кода - он из устаревшей системы, и я просто выполняю миграцию.