永发信息网

怎么写的动态库需要调用别的动态库

答案:2  悬赏:30  手机版
解决时间 2021-02-04 23:16
怎么写的动态库需要调用别的动态库
最佳答案
动态调用的时候指针名不需要和原DLL中函数一样。基本过程是这样的:
HMUDOLE hmodle=GetMuduleHandle("你要使用的DLL名字");
PROC fun=(PROC)GetProcAddress(hmodule,"DLL中函数名");
然后将fun转换成你的函数形式,比如你要调用的DLL中函数是
int myfun(int a,int b){。。。}
你可以这样转换:
typedef int (*MYFUN)(int a,int b);
(MYFUN)fun(10,20);//然后这样调用
函数指针和函数名都是一个指向函数入口地址的指针,函数入口地址是一个4字节类型的值而已,函数指针指示一个保存这个值的变量而已,名字只要合法就行,不需要和所指向的函数名一样,而且,编译后就没函数名这概念了。
全部回答
你这个是c++的dll用c#来调用吧 看看这个例子吧 使用c#时不免用调用别的dll,如win32的api和自己以前做的dll,包括不同语言之间的的dll c#调用dll很像vb,下面讨论的c#调用dll的方式。 看看下面的例子,演示了怎么定义dll函数接口 public class utility { [dllimport("kernel32", entrypoint="createdirectory", callingconvention=callingconvention.stdcall)] public static extern bool create (string name); [dllimport("user32", entrypoint="messagebox", callingconvention=callingconvention.stdcall)] public static extern int msgbox (string msg); } class myclass { public static int main() { string mystring; console.write("enter your message: "); mystring = console.readline(); return utility.msgbox(mystring); } } 值得注意的是,缺省的调用规则(callingconvention)是stdcall,同winapi,在 c++里是__stdcall的形式,函数入口(entrypoint)缺省是同名,如createdirectory 的定义也可以为 [dllimport("kernel32")] static extern bool createdirectory(string name, securityattributes sa); win32 api原型为 bool createdirectory( lpctstr lppathname, // directory name lpsecurity_attributes lpsecurityattributes // sd );
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
禹州市古城镇山连中心小学地址有知道的么?有
麦思贝儿在哪里啊,我有事要去这个地方
1等于6,2等于12,3等于18,4等于20,5等于33,问6
爸爸生日送什么香烟好?
禹州市火龙镇第一中心小学地址在什么地方,想
与用人单位申请休年假什么程序
科派的意思是什么啊?知道的请说下!
西补隆地址有知道的么?有点事想过去
没有户口本有户籍证明能办入学吗
襄城县王洛镇白塔寺中心小学地址在什么地方,
襄城县麦岭镇第五中心小学地址好找么,我有些
锦绣家园地址在哪,我要去那里办事
下列关于胸膜腔的叙述,正确的是A.平静呼吸时
唐帕的意思是什么啊?知道的请说下!
北京好视力科技发展有限公司怎么样?
推荐资讯
如何做好图书馆服务工作
【氨基磺酸钠】氨基磺酸和氢氧化钠的反应物是
逆经的意思是什么啊?知道的请说下!
雕候的意思是什么啊?知道的请说下!
1.甲冷库的温度是-7℃,乙冷库的温度比它低3℃
2014年3月15日开始实施的新的消费者权益保护
新世纪外国语学校(南白校区)地址在什么地方,
西安皇城豪门酒店地址在什么地方,我要处理点
碧血剑里的穆人清是令狐冲的徒弟吗
上海倩瘦减肥(芜湖八店)这个地址在什么地方,
求翻译 外贸类的
vivo—7的全面功能介绍一下
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?