| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1940 人关注过本帖
标题:C调用VC++6.0封装的DLL
只看楼主 加入收藏
Apollo_c
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-3
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:17 
C调用VC++6.0封装的DLL
VC++6.0做的BAC.dll,现在要在C中调用
1、C中应该怎样调用dll?

2、dll函数声明(部分)如下:
#define IMPORT_TYPE extern "C" _declspec(dllimport)

//已知压力(MPa),求对应饱和温度(℃)
IMPORT_TYPE void _stdcall P2T97(double P,double & T,int & Range);
//已知压力(MPa),求对应饱和水比焓(kJ/kg)
IMPORT_TYPE void _stdcall P2HL97(double P,double & H,int & Range);
怎样调用DLL中的函数?
我给定一个压力P,希望求出温度T。
搜索更多相关主题的帖子: double 
2017-03-03 15:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:2 
不清不楚的

如果你用的是C语言,编译
程序代码:
#include <stdio.h>

#pragma comment( lib, "BAC.lib" )
_declspec(dllimport) void _stdcall P2T97 ( double P, double* T, int* Range );
_declspec(dllimport) void _stdcall P2HL97( double P, double* H, int* Range );

int main( void )
{
    double p = 0.1;
    double t; int trange;
    double h; int hrange;

    P2T97( p, &t, &trange );
    P2T97( p, &h, &hrange );

    printf( "%f, %d\n", t, trange );
    printf( "%f, %d\n", h, hrange );

    return 0;
}
若有错误,将错误信息贴出来

如果你用的是C++语言,编译
程序代码:
#include <cstdio>

#pragma comment( lib, "BAC.lib" )
extern "C" _declspec(dllimport) void _stdcall P2T97 ( double P, double& T, int& Range );
extern "C" _declspec(dllimport) void _stdcall P2HL97( double P, double& H, int& Range );

int main( void )
{
    double p = 0.1;
    double t; int trange;
    double h; int hrange;

    P2T97( p, t, trange );
    P2T97( p, h, hrange );

    printf( "%f, %d\n", t, trange );
    printf( "%f, %d\n", h, hrange );

    return 0;
}
若有错误,将错误信息贴出来
2017-03-03 15:49
Apollo_c
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-3
收藏
得分:0 
首先非常感谢rjsp版主。
我只有一个dll文件和相关的函数说明哦,没有lib文件。DLL文件是用VC++6.0封装的,现在在C里调用。
代码编译还有很多错误哦,会是什么问题?
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-03-03 17:40
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
能把DLL发上来吗

DO IT YOURSELF !
2017-03-03 19:09
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
只有dll,可用LoadLibrary和GetProcAddress动态调用。
2017-03-03 20:49
Apollo_c
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-3
收藏
得分:0 
以下是引用wp231957在2017-3-3 19:09:44的发言:

能把DLL发上来吗

BAC.rar (92.82 KB)
2017-03-04 08:44
Apollo_c
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-3
收藏
得分:0 
以下是引用吹水佬在2017-3-3 20:49:10的发言:

只有dll,可用LoadLibrary和GetProcAddress动态调用。

你好,能不能具体说说,对C不熟悉。有没有相关的例程(通过测试的)供参考?
2017-03-04 08:46
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 6楼 Apollo_c
无法下载呢

DO IT YOURSELF !
2017-03-04 08:54
Apollo_c
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-3-3
收藏
得分:0 
以下是引用wp231957在2017-3-4 08:54:48的发言:

无法下载呢


你再看一下能不能下载,或者方便的话留个邮箱,我发给你也可以。
BAC.rar (92.82 KB)
  
2017-03-04 09:12
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
wp231957@    另: 还是无法下载

DO IT YOURSELF !
2017-03-04 09:19
快速回复:C调用VC++6.0封装的DLL
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019758 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved