Может ли кто-нибудь сказать мне, в чем разница между regsvr32 и RegAsm? Моя Dll находится в С#, так как я могу импортировать классы в С++?
В чем разница между RegAsm.exe и regsvr32? Как сгенерировать файл tlb с помощью regsvr32?
Ответ 1
regsvr32
загрузит библиотеку и попытается вызвать DllRegisterServer()
из этой библиотеки. Неважно, что на самом деле делает DllRegisterServer()
- он просто вызывает эту функцию и проверяет возвращаемое значение. Вы используете его для регистрации COM-серверов в неуправляемых библиотеках DLL. Он не может сгенерировать файл .tlb.
regasm
зарегистрирует собранную COM-сборку .NET как COM-сервер. Вы используете его для сборки .NET. Он может генерировать файл .tlb только для сборки - он проверяет информацию о типе, хранящуюся в сборке, и включает объекты, подверженные COM, в библиотеку типов.
Ответ 2
Возможно, это поможет: Как вызвать управляемую DLL из собственного кода Visual С++ в Visual Studio.NET или в Visual Studio 2005