C#中调用PB的DLL
来源:互联网 发布:java unicode编码 编辑:程序博客网 时间:2024/06/14 03:42
首先要知道这个DLL中提供了那些方法,这些方法是怎么声明的。如下面这两种形式:
function ShowRPMenuList (SQLConnPChar:PChar; FBCID:PChar):Integer;
function GetRPMenuList(RPTConnString:Pchar;FBCID:Pchar):PChar;
然后就是做一些准备工作了:
1、在C#程序主目录下建立一个Lib文件夹,将所有的DLL文件都可以放里面,然后在VS中的”解决方案资源管理器”中项目名上点右键,选择属性,点击生成事件,在”生成后事件命令行”下的文本框中写下面语句:copy $(SolutionDir)lib/(DLL文件名)。
(DllImport会按照顺序自动去寻找的地方:
1、exe所在目录
2、System32目录
3、环境变量目录
所以只需要你把引用的DLL 拷贝到这三个目录下 就可以不用写路径了
)
2、现在可以在程序中调用不带类型库的 DLL 中的函数了,一般把所有调用方法放在一个类里,并且这些调用方法要定义成静态的(static),格式如下:
[DllImport("xxx.dll", CharSet = CharSet.Ansi)]
public static extern IntPtr get_file(string szHostAddr, string szRemoteFile, string szLocalFile, short option);
[DllImport("yyy.dll", CharSet = CharSet.Ansi, EntryPoint = "PGREC_CreateRecordObject")]
public static extern IntPtr CreateRecordObject(PGLIB_DATA_TYPE dataType);
解释:
①、前面的public static extern可以作为固定格式来写。
②、Integer型转换成IntPtr,其实作为返回值的Integer型多数情况下和bool型的性质一样,在C#程序里判断返回值是不是等于IntPtr.Zero。
③、PChar型就是C#中的string型。
④、后面的EntryPoint = "PGREC_CreateRecordObject"是对应PB中的函数名。
3、现在在程序里就可以调用这个PB中的方法了 (类名.方法名)。
- C#中调用PB的DLL
- PB调用C#编写的DLL
- PB调用C#编写的DLL
- PB调用C#编写的DLL
- pb调用c#类库dll
- C#调用PB写的com组件dll
- C#调用PB写的com组件dll
- C#调用PB写的com组件dll
- PB中调用DLL文件中类的成员
- PB调用VS2005生成的DLL
- PB调用C/C++写的dll
- 关于PB调用C++的DLL
- C#中调用DLL
- C# 中调用DLL
- C#中调用dll
- C#中调用DLL
- C# 中调用DLL
- C#中调用DLL
- UNDO表空间的管理
- SSH集成利用CharacterEncodingFilter解决中文乱码
- Java FX 命令行
- OpenSessionInViewFilter在SSH框架中的应用
- Ant+Xdoclet配合生成hibernate相关文件
- C#中调用PB的DLL
- ssh集成过程中针对Servlet action is not available的解决办法
- select基础
- 用Spring集成Struts时老出Servlet action is not available
- 对吞吐量和吞吐率的理解
- 处理struts servlet jsp 中文乱码问题
- 最美妙的数学公式
- 说说大型高并发高负载网站的系统架构
- java传值还是传引用