Основная цель: создать оболочку для библиотеки C #, которую можно использовать в Python (2.6).
ОБНОВЛЕНИЕ: Теперь у меня есть обновления для используемого мной метода, который, однако, работает не очень хорошо,
Код для простой библиотеки классов C #:
using System;
using System.Text;
using System.Runtime.InteropServices;
namespace Test
{
[Guid("8F38030D-52FA-4816-B587-A925FDD33302")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface _TestClass
{
[DispId(1)]
string Eureka();
}
[Guid("BC3F6BB3-42C4-4F30-869A-92EA45BF68D2")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("Test.TestClass")]
public class TestClass : _TestClass
{
public TestClass()
{
}
public string Eureka()
{
return "Hudson, we no longer have a problem!";
}
}
}
enter code here
В дополнение к этому я вошел в Свойства проекта и включил настройку: Регистрация для взаимодействия COM.
Кроме того, чтобы сделать библиотеку классов доступной для COM, я поставил галочку «Подписать -> Подписать сборку» и дал ей сильный ключ.
Кроме того, всякий раз, когда я компилирую, я отменяю регистрацию старой версии с помощью:
regasm -u Test /tlb:Test
И регистрирую ее с помощью:
regasm Test.dll / tlb:Тест
Моя проблема в том, что в среде Python у меня есть следующий main.py, который не работает:
import win32com.client
o = win32com.client.Dispatch("Test.TestClass")
Ошибка не прощена.
Заранее спасибо!