如何让PB调用我用C#2008写的DLL

talentmykaka 2010-03-19 09:14:38
创建了一个类项目,名为TEST,
在TEST项目中增加了一个RYDA.cs,代码如下:
using System.Data.SqlClient;
using System.Data;
using System.Xml;

namespace XNH_InterFace
{
public class RYDA
{
public static string GRXX(string XML)
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(XML);
XmlNode x = xmldoc.SelectSingleNode("//GRXX");
string STR_BH = (x.SelectSingleNode("BH")).InnerText;
string STR_XM = (x.SelectSingleNode("XM")).InnerText;
string STR_XB = (x.SelectSingleNode("XB")).InnerText;
string STR_XMLInfo= STR_BH +"|"+STR_XM +"|"+STR_XB;

return STR_XMLInfo;


}

}
}
-------------------------------------------------------
然后我编译成TEST.DLL文件

接着如何才能在PB中调用呢?希望能给详细的代码,感谢!
...全文
240 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
talentmykaka 2010-03-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xingyuebuyu 的回复:]
C#写的DLL是托管DLL,据我所知的呃托管DLL是无法导出函数的.
C#编写的库和其它非托管程序交互的一般方法是:
1.程序集必须是强签名的;
2.程序集已安装到系统的GAC;
3.要调用的类是public的且标记为Comvisible
4.程序集已经用regasm之类的工具注册

仔细看下
http://topic.csdn.net/u/20100320/12/e48da9ce……
[/Quote]

1.程序集必须是强签名的;
2.程序集已安装到系统的GAC;
这2条是什么意思?如何实现的?

3.要调用的类是public的且标记为Comvisible
我一楼给的类代码是不是符合public?Comvisible这个是不是只要在AssemblyInfo.cs里把
[assembly: ComVisible(true)]这样就可以?其他地方无需修改?



talentmykaka 2010-03-22
  • 打赏
  • 举报
回复
第一次写跨语言的DLL,很多地方不太明白,见谅啊。
我在网上找了些资料,说用Regasm.exe注册一下DLL文件,就可以让其他非.NET程序用COM方式进行调用了?是这样么?这里说的DLL文件,是不是就是用 C#常规生成的DLL文件?
注册方法如下:
http://msdn.microsoft.com/zh-cn/library/tzat5yw6(VS.80).aspx
xingyuebuyu 2010-03-20
  • 打赏
  • 举报
回复
C#写的DLL是托管DLL,据我所知的呃托管DLL是无法导出函数的.
C#编写的库和其它非托管程序交互的一般方法是:
1.程序集必须是强签名的;
2.程序集已安装到系统的GAC;
3.要调用的类是public的且标记为Comvisible
4.程序集已经用regasm之类的工具注册

仔细看下
http://topic.csdn.net/u/20100320/12/e48da9ce-7ef0-41a6-a47c-8a4610dfa811.html
oneatree 2010-03-20
  • 打赏
  • 举报
回复
需要用regasm命令把动态库 再编译一下
talentmykaka 2010-03-20
  • 打赏
  • 举报
回复
想问下,我直接生成的DLL不能给PB或其他非.NET程序调用是么?就算调用的计算机上装有.NET框架都不行,是不是?
talentmykaka 2010-03-20
  • 打赏
  • 举报
回复
是不是我发错地方了?
xingyuebuyu 2010-03-20
  • 打赏
  • 举报
回复
PB调用COM型的DLL
参考1
http://www.cnblogs.com/gxlinhai/archive/2007/12/19/1006067.html
2
http://topic.csdn.net/t/20051213/15/4456730.html
3
http://topic.csdn.net/t/20021104/19/1148027.html
talentmykaka 2010-03-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oneatree 的回复:]
需要用regasm命令把动态库 再编译一下
[/Quote]

编译下就能用?PB怎么调用?给个代码可以不?谢谢

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧