在PowerBuilder 12.5.2中使用C#创建的DLL

时间:2015-12-16 07:54:12

标签: c# .net visual-studio-2015 powerbuilder password-encryption

我创建了一个简单的C#类库,目标是.Net Framework 4.5.2,其中一个类使用Visual Studio 2015企业版。

示例代码:

namespace PwdEncryptor
{
    public class Class1
    {
        public string Encrypt (string actualPassword)
        {
           return String.Concat(actualPassword, "Encrypt");
        }
    }
}

我想在另一个系统上的powerbuilder代码中使用它。

目的这样做是为了拥有密码加密的通用代码。

问题:

我在我的powerbuilder代码中使用它来通过在这样的全局实例变量中声明:

函数字符串Encrypt(string actualPassword)Library“PwdEncryptor.dll”

在我写的应用程序的Open事件中:

string pwd
pwd = Encrypt("XYZ")

当我运行代码时,我收到一条消息,说“未知功能名称”

为了解决这个问题,我尝试了here提到的解决方案。我采取的一个小偏差是在同一系统上的powerbuilder中执行而不是我导出了创建的注册表&导入到存在powerbuilder代码的其他系统。在这种情况下,我得到的错误是在Application对象的Open事件中的行中运行时函数参考错误。

有没有办法可以使用我创建的DLL?我错过了什么吗?请指教。

2 个答案:

答案 0 :(得分:0)

您必须将DLL公开为COM可见。 this answerthis other的详细信息。

Project properties > Application > Make assembly COM-visible

答案 1 :(得分:0)

我已经解决了这个问题。

而不是从我的系统中导出注册表&在包含powerbuilder代码的系统上导入它,我应该使用 RegAsm.exe

注册我的C#dll

注册DLL后,PowerBuilder代码就可以使用C#代码。