我创建了一个简单的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?我错过了什么吗?请指教。
答案 0 :(得分:0)
您必须将DLL公开为COM可见。 this answer和this other的详细信息。
答案 1 :(得分:0)
我已经解决了这个问题。
而不是从我的系统中导出注册表&在包含powerbuilder代码的系统上导入它,我应该使用 RegAsm.exe
注册我的C#dll注册DLL后,PowerBuilder代码就可以使用C#代码。