gpt4 book ai didi

c# - 在 Python 中为 C# 库创建包装器

转载 作者:行者123 更新时间:2023-11-28 17:52:31 25 4
gpt4 key购买 nike

主要目标:为 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,我勾选了 Signing -> Sign the Assembly,并给了它一个强键。

此外,每当我编译时,我都会注销旧版本:

regasm -u Test /tlb:Test

然后我注册它:

regasm Test.dll /tlb:Test

我的问题是,在 Python 环境中,我有以下 main.py,它不工作:

import win32com.client

o = win32com.client.Dispatch("Test.TestClass")

错误是不可原谅的。

提前致谢!

最佳答案

另一种方法是使用 Python for .NET . Windows CPython 2.6 and 2.7 似乎有 alpha 版本可用的。你可以简单地运行:

import clr
clr.AddReference("Your.Assembly.Name")
import Test
test = Test.TestClass()
print test.Eureka()

关于c# - 在 Python 中为 C# 库创建包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7008733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com