社区
进程/线程/DLL
帖子详情
★高手请进★:关于dll调用的几个问题........
enoloo
2003-12-16 05:24:32
1,在vc中调用dll中的函数接口可以通过h文件或者申明接口。现在用户给我一个txt文本(我以文本形式打开),里面有接口函数的定义,我在程序中怎么引用这些接口?
2,我能在vc中调用vb做的dll吗?vb怎么做引出函数?
3,和第二问一样,怎么调用delphi做的dll?要注意些什么问题?
原则上一个问题50分....
thanks.
...全文
29
13
打赏
收藏
★高手请进★:关于dll调用的几个问题........
1,在vc中调用dll中的函数接口可以通过h文件或者申明接口。现在用户给我一个txt文本(我以文本形式打开),里面有接口函数的定义,我在程序中怎么引用这些接口? 2,我能在vc中调用vb做的dll吗?vb怎么做引出函数? 3,和第二问一样,怎么调用delphi做的dll?要注意些什么问题? 原则上一个问题50分.... thanks.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MFCClass
2003-12-20
打赏
举报
回复
up
enoloo
2003-12-17
打赏
举报
回复
有没有用vc调用过vb或delphi dll的?
up有分.....
enoloo
2003-12-16
打赏
举报
回复
vb可以在def中声明导出函数,但是在vc中编译能根据def文件自动连接函数接口吗?
enoloo
2003-12-16
打赏
举报
回复
谢谢,继续讨论....
vcforever
2003-12-16
打赏
举报
回复
1、你可以根据.txt文件中提供的函数说明中了解到具体应该调用哪个函数,然后用显式加载DLL的方法调用DLL中的导出函数如:
HINSTANCE hInst = LoadLibrary("your.DLL");
if(hInst)
{
typedef BOOL (WINAPI *FUNC)(....);//定义函数指针
FUNC fun = NULL;
fun = (FUNC)GetProcAddress(hInst,"yourFucntionname");
if(fun)
fun();//通过函数指针来调用函数
FreeLibrary(hInst);//释放DLL
}
2、
在VC中可以调用VB的DLL(前提是VB做的DLL可以供其他语言开发的程序调用)
VB不太熟悉,我想也应该在一个连接文件(类似.def文件)中声明导出函数吧
3、不熟悉,不好乱发言论!
我认为调用不同语言开发的DLL应该注意参数的传递问题!
enoloo
2003-12-16
打赏
举报
回复
可能是我没说明白。
我要程序自动识别任何dll,但他要提供一个函数接口表。
比如是:
VOID func1 int int int
VOID func2 HDC float float
现在我程序要自动识别并调用函数func1,func2.
如果我手工做,可以
typedef void (WINAPI func*)(int,int,int);
func dll_func;
dll_func(4,5,5);
但是,程序要自动对dll识别接口(没有头文件)。
程序用变量CString s="func1"; //从提供的文件中提取出
CString arg1="int";
CString arg2="int";
CString arg3="int";
下一步怎么有s,arg1,arg2,arg3调用dll中的函数??
yifengling0
2003-12-16
打赏
举报
回复
就是楼上的方法阿!~
知道什么样的函数就声明什么样的函数指针就可以了吗!
enoloo
2003-12-16
打赏
举报
回复
呵呵,谢谢各位~
可能你们还没明白我的意思。
HINSTANCE h;
h=LoadLibrary("your.dll");
typedef int(*yourinterface)();
yourinterface your;
your=(yourinterface)GetProcAddress(h,"yourmethod");
your();
问题是:假设yourinterface(int,int),在假设我对这个dll的情况一无所知。
我只知道他按一种格式提供了一个txt文件,里面保存了所有的接口以及参数,我提取这些
比如对于一个函数char *funcname=name_funtion1;char * arg[]=args;
现在问题是,我根据这些信息(比如知道参数的类型,函数名),怎么在vc环境下调用dll中的这些函数。
能给出一些思路吗?
谢谢了,一定给分~
alphapiao
2003-12-16
打赏
举报
回复
我一般用楼上的方法,静态调用,适合输出参数比较复杂的函数和输出类
robinzo
2003-12-16
打赏
举报
回复
一种方法是将给你的函数声明写成h文件,然后在自己的工程中包含它,将dll放到系统目录下,在自己的工程中"Project->settings.."中的"Link"中添上dll对应的lib的位置,这样你就可以在自己的工程中使用别人的DLL中提供的函数了
另外一种方法就是如楼上给的,动态加载。
vb做的dll可以在vc下调用,由于vb
kof99th
2003-12-16
打赏
举报
回复
用显示调用
LoadLibrary
GetProcAddress
FreeLibrary
yifengling0
2003-12-16
打赏
举报
回复
楼上的方法很好!~~
esri
2003-12-16
打赏
举报
回复
HINSTANCE h;
h=LoadLibrary("your.dll");
typedef int(*yourinterface)();
yourinterface your;
your=(yourinterface)GetProcAddress(h,"yourmethod");
your();
JAVA上百实例源码以及开源项目
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数
调用
Home接口...
mysql workbench kernelbase.
dll
_MySQL Workbench 已停止工作 错误模块名称: KERNELBASE.
dll
异常代码: 0xe0434352 程序无法正常启...
我是在学习MySQL时候遇到的这个
问题
,心想图形化多么美好,结果一装上就遇到了这个
问题
。其他同样报错信息的情况本文同样适用,不一定非是Workbench。我装的版本不重要,我相信这不是某个版本的
问题
,首先声明:重新...
Unity ILRuntime框架设计
本课程主要是针对ILRuntime设计一个独立的脚本热更新框,框架的优势: 1.将代码热更脱离Assetbundle资源热更,独立的部分更适用于各种不同的框架。 2.加快项目的逻辑更新,bug修复.(后期修bug,多数情况下并不用动到...
自制J-Flash烧录工具——Qt
调用
jlinkARM.
dll
方式
想必玩过STM32、GD32的同学都用过下面这个烧录工具吧,它就是J-Flash。通过它再配合我们购买的jlink、jlink-ob等烧录器,...本文章将介绍如何使用QT
调用
JlinkARM.
dll
动态库,实现芯片ID的读取和程序的烧录功能。......
ava.lang.UnsatisfiedLinkError: CC错误有以下几种原因和处理方法
<br />运行JSP报表程序页面出现java.lang.UnsatisfiedLinkError: CC错误有以下几种原因和处理方法: 1、请查看控制台的错误信息 a:如果控制台的消息是类似 <br />java.lang....
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章