mydll.dll:extern"C" __declspec(dllexport) int sendToGPRS(
void * data,  int len,struct in_addr *addr ) 
___________________________________________________我的目的是在exe(FMC)中调用到此函数!
我的问题:
1:一般是用隐式连接吧?
2:只要把LIB文件和dll文件放到要执行exe的当前路径下就行了,是吗?
   如果不是,要在exe的那块加上什么代码?

解决方案 »

  1.   

    1: 随意。
    2:项目中包含
    extern"C" __declspec(dllimport) int sendToGPRS(
    void * data,  int len,struct in_addr *addr ) 
        的声明和lib文件。一个小伎俩:想一步到位的话,可以把如下的头文件加入到项目中:// MyDll.h
    #pragma once
    extern"C" __declspec(dllimport) int sendToGPRS(
    void * data,  int len,struct in_addr *addr ) 
    #pragma comment(lib,"MyDll.lib")
      

  2.   

    项目中包含
    extern"C" __declspec(dllimport) int sendToGPRS(
    void * data,  int len,struct in_addr *addr ) 
        的声明和lib文件。
    -----------------------------------------------
    "项目中包含"的意思是:在IDE的菜单project->add to project->files中包含lib和dll两个文件!(我对项目中包含二字的理解)
      

  3.   

    别人给的dll,我没有权利修改!!!
      

  4.   

    晕,怪我没说清楚。
      包含文件你说得没错,不过只要lib就好了,dll就不用了。
      包含声明意味着需要加入这段声明的代码(在原有的.h文件或是新建一个.h文件或是在.cpp文件里都可以)
      

  5.   

    我从来没用过dll,多这东西没有什么概念,在加上我还没有那个dll,只知道里面的一些导出函数,没法现在就试试,所以.......
    我还是不太清楚,惭愧.......包含声明意味着需要加入这段声明的代码(在原有的.h文件或是新建一个.h文件或是在.cpp文件里都可以)
    这话还是不太理解???"加入这段声明的代码"?
    "原有的.h"如果工程为temp.exe,动态连接库为Mydll.dll和Mydll.lib,是在temp工程中加入MyDll.h(MyDll.h的内容如下)
    // MyDll.h
    #pragma once
    extern"C" __declspec(dllimport) int sendToGPRS(
    void * data,  int len,struct in_addr *addr ) 
    #pragma comment(lib,"MyDll.lib")这样就一步到位了?是吗?
      

  6.   

    是的。不过如果是vc6的话,#pragma once好像没实现。可以换成如下:// MyDll.h
    #IFNDEF _MYDLL_H_
    #DEFINE _MYDLL_H_
    extern"C" __declspec(dllimport) int sendToGPRS(
    void * data,  int len,struct in_addr *addr ) 
    #pragma comment(lib,"MyDll.lib")
    #ENDIF //_MYDLL_H_
      

  7.   

    谢谢新建一个temp的工程,在其Button的点击事件下调用Mydll.dll中的sendToGPRS()函数!
    你告之我两种方法:
    1:一步到位的方法
       在temp工程中新建一个MyDll.h的文件,因为要用到名为Mydll.dll的动态连接库,所以必须取Mydll.h的文件名,并加载到temp工程中!2:把Mydll.dll和Mydll.lib拷贝到相应的目录下,在temp工程中加载Mydll.lib!
      

  8.   

    隐式调用:
       把Mydll.dll和Mydll.lib拷贝到相应的目录下,在temp工程中setting->link加载Mydll.lib
       在程序中声明: extern"C" __declspec(dllimport) int sendToGPRS(
    void * data,  int len,struct in_addr *addr ) ; whoo(谁)说的方法 #pragma comment(lib,"MyDll.lib") 也就是相当在temp工程中setting->link加载Mydll.lib
      

  9.   

    把Mydll.dll和Mydll.lib拷贝到相应的目录下,在temp工程中加载Mydll.lib!