В чем разница между RegAsm.exe и regsvr32? Как сгенерировать файл tlb с помощью regsvr32?

Может ли кто-нибудь сказать мне, в чем разница между regsvr32 и RegAsm? Моя Dll находится в С#, так как я могу импортировать классы в С++?

Ответ 1

regsvr32 загрузит библиотеку и попытается вызвать DllRegisterServer() из этой библиотеки. Неважно, что на самом деле делает DllRegisterServer() - он просто вызывает эту функцию и проверяет возвращаемое значение. Вы используете его для регистрации COM-серверов в неуправляемых библиотеках DLL. Он не может сгенерировать файл .tlb.

regasm зарегистрирует собранную COM-сборку .NET как COM-сервер. Вы используете его для сборки .NET. Он может генерировать файл .tlb только для сборки - он проверяет информацию о типе, хранящуюся в сборке, и включает объекты, подверженные COM, в библиотеку типов.