Да. Во-первых, вам нужно создать COM-объект. Ниже приведен очень простой пример.
[Guid("123565C4-C5FA-4512-A560-1D47F9FDFA20")]
public interface IDoSomething
{
[DispId(1)]
string Name { get; }
[DispId(2)]
int DoSomething();
}
[ComVisible(true)]
[Guid("12AC8095-BD27-4de8-A30B-991940666927")]
[ClassInterface(ClassInterfaceType.None)]
public sealed class DoSomething: IDoSomething
{
public DoSomething()
{
}
public string Name
{
get { return ""; }
}
public int DoSomething()
{
return 4; //random number
}
}
После этого вам необходимо восстановить сборку. Инструмент regasm добавит необходимые записи реестра COM:
regasm.exe /tlb component.dll
/ tlb необходим для создания библиотеки типов для импорта в приложение MFC.
Как только ваша сборка зарегистрирована, вы можете вызывать DoSomething в своем приложении MFC, как и любые другие объекты COM.
Проверьте эту ссылку для получения дополнительной информации.