厂家只提供了.h文件和.lib文件,如何生成dll文件,以供我来调用
.h 文件部份内容如下:
extern int a1(char *i1, int p1, char *lk, char *mk);
各位帮帮忙,说详细点,分不够还可以再加,因为我不会用vc,所以看了上网搜索也是看得一头雾水.

解决方案 »

  1.   

    什么意思? 厂家给你了 lib 文件和 .h文件么? 估计是静态库直接 include  .h文件把lib加到工程里面就ok了
      

  2.   

    这是静态调用DLL的方式静态调用其步骤如下:
    1.把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)的Debug目录下;
    2.把你的youApp.lib拷到你目标工程(需调用youApp.DLL的工程)目录下;
    3.把你的youApp.h(包含输出函数的定义)拷到你目标工程(需调用youApp.DLL的工程)目
    录下;
    4.打开你的目标工程选中工程,选择Visual C++的Project主菜单的Settings菜单;
    5.执行第4步后,VC将会弹出一个对话框,在对话框的多页显示控件中选择Link页。然
    后在Object/library modules输入框中输入:youApp.lib
    6.选择你的目标工程Head Files加入:youApp.h文件;
    7.最后在你目标工程(*.cpp,需要调用DLL中的函数)中包含你的:#include "youApp.h"
    注:youApp是你DLL的工程名。
      

  3.   

    哦,静态方式的话  .dll可以不要。
      

  4.   

    人家给你h和lib你直接用就行了:你应该问怎么用?(直接“#pragma comment( lib, "xxx.lib" )”)
    不用生成DLL!!!
      

  5.   

    因为是用pb的开发工具,没办法直接调用,要生成dll才能调用,比较麻烦.
      

  6.   

    这个貌似不能调用,.lib文件的目的就是防止别人窃取代码,你可以直接用啊。但是别人的代码内容你是看不见的。
      

  7.   

    用vc建一个dll工程吧包含那个头文件和静态库然后把自己需要的函数导出
      

  8.   

    公 开一下
    asp_api.h,asp_api.lib
    其中 asp_api.h内容如下:
    #ifndef  _ASP_API_H
    #define _ASP_API_H//操作错误代码
    //初始化错误代码
    /****************************************************************
     * 名    称: int initSmgpConn(char *ip, int port, char *userId, char *passwd)
     * 功    能: 初始化函数,创建链路维护线程,发送线程,接收线程,和缓存区。
     * 输    入: ip  电信二级网关IP
     port 电信二级网关服务端端口
     userId 登录用户名
     passwd 登录口令
     * 输    出: 无
     * 返    回: 1 成功; <0 失败
     * 注    意: 此函数要先调用,
    ****************************************************************/
    extern int initSmgpConn(char *ip, int port, char *userId, char *passwd);/****************************************************************
     * 名    称: int sendSmgpSubmit(unsigned int seqId, char *srcAddr, char *dstAddr, unsigned char msgFmt, unsigned char msgLen, char *content, unsigned char needRpt)
     * 功    能: 发送短信函数,即MT
     * 输    入: seqId  短信序号,用于应答匹配。
     srcAddr 主叫
     dstAddr 被叫
     msgFmt 短消息内容格式 0: ASCII, 15: GB2312, 8: ucs2
     msgLen 短消息内容长度,不能超过255
     content 短信内容
     needRpt 是否需要回执,0:不需要,1:需要
     * 输    出: 1 成功, -1 失败
     * 返    回: 打包长度
     * 注    意: seqId与短信应答进行匹配时使用。目前网关多数情况下用15: GB2312格式下行
    ****************************************************************/
    extern int sendSmgpSubmit(unsigned int seqId, char *srcAddr, char *dstAddr, unsigned char msgFmt, unsigned char msgLen, char *content, unsigned char needRpt);/****************************************************************
     * 名    称: int recvSmgpSubmitRsp(int *seqId, char *msgId, int *status)
     * 功    能: 从应答缓冲区接收短信应答函数
     * 输    入: *seqId  短信序号
     *msgId 短消息在网关的ID号
     *status 应答值,0 成功,其它:失败。
     * 输    出: seqId,msgId,status
     * 返    回: 0 无数据,1 有数据
     * 注    意: 无
    ****************************************************************/
    extern int recvSmgpSubmitRsp(int *seqId, char *msgId, int *status);/****************************************************************
     * 名    称: int recvSmgpSubmitRpt(char *msgId, char *err, char *srcAddr, char *dstAddr)
     * 功    能: 从短信回执缓冲区接收短信状态报告
     * 输    入: *msgId  短消息在网关的ID号
     *err 短信最终结果,0 成功下行,其它:失败
     *srcAddr 回执主叫
     *dstAddr 回执被叫
     * 输    出: *msgId, *err, *srcAddr, *dstAddr
     * 返    回: 0 无数据,1 有数据
     * 注    意: 短信状态报告中的主叫、被叫与短信发送时相反。
    ****************************************************************/
    extern int recvSmgpSubmitRpt(char *msgId, char *err, char *srcAddr, char *dstAddr);/****************************************************************
     * 名    称: int recvSmgpDeliver(unsigned int *seqId, char *srcAddr, char *dstAddr, unsigned char *msgFmt, unsigned char *msgLen, char *content)
     * 功    能: 从上行短信缓冲区接收终端用户上行短信
     * 输    入: *seqId  短信序号
     srcAddr 主叫
     dstAddr 被叫
     msgFmt 短消息内容格式 0: ASCII, 15: GB2312, 8: ucs2
     msgLen 短信内容长度
     content 短信内容
     * 输    出: *seqId, *srcAddr, *dstAddr, *msgFmt, *msgLen, *content
     * 返    回: 0 无数据,1 有数据
     * 注    意: 目前网关多数情况下用15: GB2312格式上行
    ****************************************************************/
    extern int recvSmgpDeliver(unsigned int *seqId, char *srcAddr, char *dstAddr, unsigned char *msgFmt, unsigned char *msgLen, char *content);/****************************************************************
     * 名    称: void exitSmgpConn()
     * 功    能: 退出连接
     * 输    入: 无
     * 输    出: 无
     * 返    回: 无
     * 注    意: 无
    ****************************************************************/
    extern void exitSmgpConn();#endif
    ////////////////////////////////
      

  9.   


    能说详细一点吗?我针对lib中某几个函数做了输出,生成了dll,但是在调这个dll的时候无法得到这几个函数的地址。