Вы можете создать оболочку C # из TLB с помощью программы TlmImp.exe. См. Как: создать основные сборки взаимодействия с помощью Tlbimp.exe для получения дополнительной информации.
например. tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /out:LibUtil.dll
Редактировать: отразить комментарий.
Так как код C # всегда выполняется в CLR , любой вызов в неуправляемый мир необходимо правильно распределить . У вас есть возможность
(a) разрешить сгенерированным оболочкам просто выполнять взаимодействие, или
(б) вы можете оптимизировать упаковщики самостоятельно.
(c) Другое, что вы можете сделать, это написать свою oen-оболочку в управляемом c ++, а затем напрямую вызвать vtable. Я подозреваю, что это приведет к очень низким накладным расходам.
(d) Последний вариант - просто написать простую неуправляемую библиотеку DLL с одной функцией и использовать P / Invoke для вызова ее непосредственно из управляемого кода.