| 查看: 682 | 回复: 1 | |||
| 本帖产生 1 个 程序强帖 ,点击这里进行查看 | |||
zzahkj木虫 (著名写手)
龙
|
[交流]
关于调用dll的简单问题?已有1人参与
|
||
|
我需用Vb.net调用Fortran编译的dll,我在网上看到的格式大概是 Public Declare Function XXXX Lib "xxx.dll" (ByVal xxx As IntPtr, ByRef xxx As Integer) As Integer 这些xxx都是些什么?求详解?还有别人给我一个dll调用,我需要知道关于这个dll的哪些东西,如什么参数啊,接口啊?求详解,新手,亟需了解,谢谢! |
» 猜你喜欢
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
孩子确诊有中度注意力缺陷
已经有6人回复
2026博士申请-功能高分子,水凝胶方向
已经有6人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复
请问2026国家基金面上项目会启动申2停1吗
已经有5人回复
同一篇文章,用不同账号投稿对编辑决定是否送审有没有影响?
已经有3人回复
» 本主题相关价值贴推荐,对您同样有帮助:
有关DLL的问题
已经有4人回复
【转帖】Delphi中的线程类
已经有3人回复
【求助】开发一个校准程序,厂家提供的动态链接库,看了好多帖子,怎么调用?问题比较
已经有3人回复
【交流】VC++, C#, VB答疑专贴
已经有145人回复

sudo
木虫 (正式写手)
- 程序强帖: 16
- 应助: 6 (幼儿园)
- 金币: 1297.6
- 散金: 1486
- 红花: 20
- 帖子: 588
- 在线: 641小时
- 虫号: 1211394
- 注册: 2011-02-24
- 性别: GG
- 专业: 文艺美学
★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 鼓励应助! 2011-05-25 17:33:42
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 鼓励应助! 2011-05-25 17:33:42
话说今天我也不得不研究一下VB...偶然看见这贴,说下感想啦...不过我做的是VB调用VC编译的DLL,原理其实是一样的 Public Declare Function AAA Lib "BBB.dll" (ByVal CCC As IntPtr, ByRef DDD As Integer) As Integer 这个东西如字面意思,是个“声明”,它所声明的函数名为AAA。声明并非实现,而只是告诉程序,这个函数是应该怎样调用的(比如参数为CCC,DDD,返回值为Integer这些信息,是编译器【注1】所需要知道的) 在这里多废话两句,函数名,何物也? 函数名并不一定是在Fortran或者C/C++里面的函数名哦!认识到这一点至关重要。编译成DLL之后,编译器很可能对函数名进行了一些更改~ 那么VB到底需要什么样的“函数名”呢?在VC里面有一个dumpbin.exe的工具(仔细找找,呵呵),比如我做了一个DLL文件是dlltest.dll,那么: 其中重要的输出部分是 OK,这样我们可以知道这个DLL里面有4个函数,函数名分别为Exit,Init,Read和Write 这时候在VB声明的时候,这些名字就派上用场了~ 呵呵,记得上面我提到过编译器很可能会更改你的函数名,比如如果是用.cpp做的DLL,然后没有extern "C",也没有指定.def文件(模块定义文件),那么上面的命令,结果会变成这样: 这个时候你会很惊讶函数名竟然是“?Exit@@YGHXZ = ?Exit@@YGHXZ (int __stdcall Exit(void))”这种乱糟糟的东西(咳,其实还是有点规律的),这个时候,在VB里面就不好指定函数名了,所以最好还是老老实实让生成的DLL有个简洁的函数名~ Fortran的话,会不会遇到上面所说的问题,暂时不大清楚,毕竟我没用过Fortran的编译器,不过编译成DLL之后,在这个二进制层面,它和C/C++应该并无二致(咳,不知道Fortran的函数调用约定是不是stdcall)~如果楼主还有什么问题,可以跟帖交流下~ ![]() 【注1】咳,初学VB,不大确信这个东西是不是该叫“编译器”?还是应该叫“解析器”? |
2楼2011-05-25 14:33:11













回复此楼
话说今天我也不得不研究一下VB...偶然看见这贴,说下感想啦...