Demo中的与Dll连接的.h文件我又看不懂.我现在要用Delphi调用该Dll
我该怎么办?????????
7 个解决方案
#1
如果你输出的是个类的对象,那么在delphi中调用也可以可以采用同样的方法,唯一的是数据类型要符合delphi的类型约定。可以采用记录型数组来定义
这个类。
这个类。
#2
同意楼上
#3
同意楼上
#4
vc传的是mfc对象,delphi的是vcl,不行的。。。
不过可以通过 hwnd(handle) 做桥梁。。。。。
mfc control.m_hWnd -------> handle --------> vcl control.handle
不过可以通过 hwnd(handle) 做桥梁。。。。。
mfc control.m_hWnd -------> handle --------> vcl control.handle
#5
VC的DLL引出的类是不能供Delphi调用的.你可以用VC再作一个DLL来替Delphi调用:
方法一:
用许多函数代替类,每个成员函数对应一个函数,构造函数对应一个返回值为(void*)的参数列表相同的函数,其它函数对应一个返回值相同但多一个(void*)的参数的函数.
方法二:
在VC里写一个新的类去调用旧的类class1,所有public方法都是虚的;用上面的方法引出构造函数;在Delphi中写一个同样的类class2,所有的public方法都是抽象的(abstract);在Delphi中引入DLL中的函数(代理构造函数)时返回值为class2.得到class2的对象后直接调用就行了.
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
方法一:
用许多函数代替类,每个成员函数对应一个函数,构造函数对应一个返回值为(void*)的参数列表相同的函数,其它函数对应一个返回值相同但多一个(void*)的参数的函数.
方法二:
在VC里写一个新的类去调用旧的类class1,所有public方法都是虚的;用上面的方法引出构造函数;在Delphi中写一个同样的类class2,所有的public方法都是抽象的(abstract);在Delphi中引入DLL中的函数(代理构造函数)时返回值为class2.得到class2的对象后直接调用就行了.
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
#6
但可以用CB调用,我现在是不能肯定能否用Delphi调用
#7
我怎样确定一个dll能否被Delphi调用
#1
如果你输出的是个类的对象,那么在delphi中调用也可以可以采用同样的方法,唯一的是数据类型要符合delphi的类型约定。可以采用记录型数组来定义
这个类。
这个类。
#2
同意楼上
#3
同意楼上
#4
vc传的是mfc对象,delphi的是vcl,不行的。。。
不过可以通过 hwnd(handle) 做桥梁。。。。。
mfc control.m_hWnd -------> handle --------> vcl control.handle
不过可以通过 hwnd(handle) 做桥梁。。。。。
mfc control.m_hWnd -------> handle --------> vcl control.handle
#5
VC的DLL引出的类是不能供Delphi调用的.你可以用VC再作一个DLL来替Delphi调用:
方法一:
用许多函数代替类,每个成员函数对应一个函数,构造函数对应一个返回值为(void*)的参数列表相同的函数,其它函数对应一个返回值相同但多一个(void*)的参数的函数.
方法二:
在VC里写一个新的类去调用旧的类class1,所有public方法都是虚的;用上面的方法引出构造函数;在Delphi中写一个同样的类class2,所有的public方法都是抽象的(abstract);在Delphi中引入DLL中的函数(代理构造函数)时返回值为class2.得到class2的对象后直接调用就行了.
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
方法一:
用许多函数代替类,每个成员函数对应一个函数,构造函数对应一个返回值为(void*)的参数列表相同的函数,其它函数对应一个返回值相同但多一个(void*)的参数的函数.
方法二:
在VC里写一个新的类去调用旧的类class1,所有public方法都是虚的;用上面的方法引出构造函数;在Delphi中写一个同样的类class2,所有的public方法都是抽象的(abstract);在Delphi中引入DLL中的函数(代理构造函数)时返回值为class2.得到class2的对象后直接调用就行了.
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
#6
但可以用CB调用,我现在是不能肯定能否用Delphi调用
#7
我怎样确定一个dll能否被Delphi调用