VC DLL的创建和使用

我建立了一个比较大小的DLL文件,如下:  
  //   MyDLL.cpp   :   Defines   the   entry   point   for   the   DLL   application.  
  //  
   
  #include   "stdafx.h"  
   
  #include"MyDLL.h"  
  int   Max(int   a,   int   b)  
  {  
  if(a>=b)return   a;  
  else  
  return   b;  
  }  
  int   Min(int   a,   int   b)  
  {  
  if(a>=b)return   b;  
  else  
  return   a;  
  }    
   
  BOOL   APIENTRY   DllMain(   HANDLE   hModule,    
                                                DWORD     ul_reason_for_call,    
                                                LPVOID   lpReserved  
    )  
  {  
          return   TRUE;  
  }  
   
  //MyDLL.h  
  extern   "C"   _declspec(dllexport)   int   Max(int   a,   int   b);  
  extern   "C"   _declspec(dllexport)   int   Min(int   a,   int   b);
 
  编译后,我把生成的文件MyDLL.dll和MyDLL.lib放到新建的TestDLL文件(win32   Application)的文件夹下,TestDLL源程序如下:  
  //TestDLL.cpp  
  #include   "stdafx.h"  
  #include   "stdio.h"  
  #include   "TestDLL.h"  
  int   APIENTRY   WinMain(HINSTANCE   hInstance,  
                                            HINSTANCE   hPrevInstance,  
                                            LPSTR           lpCmdLine,  
                                            int               nCmdShow)  
  {  
    //   TODO:   Place   code   here.  
  int   a;  
  a=min(8,10);  
  printf("比较的结果为%d   ",a);  
   
  return   0;  
  }  
   
  //TestDLL.h  
  #include   "stdafx.h"  
  #include   "stdio.h"  
  #pragma   comment(lib,"MyDLL.lib")  
  extern   "C"_declspec(dllimport)   int   Max(int   a,int   b);  
  extern   "C"_declspec(dllimport)   int   Min(int   a,int   b);
  

 

 ---------------------------------------------------------------------------------------

#include <windows.h>
#include <winbase.h>

 

#pragma comment(lib, "dll.lib");
extern "C"_declspec(dllimport) int sum(int a, int b);  

typedef void (*MYPROC)(LPTSTR);

int main(int argc, char* argv[])
{
    printf("%d",sum(2,3));
    return 0;

    HINSTANCE LibHand;
    MYPROC ProcAdd;
    LibHand = LoadLibrary("msvcrt.dll");
    //if(NULL != LibHand)
        ProcAdd = (MYPROC) GetProcAddress(LibHand, "system");
    //if(NULL != ProcAdd)
        (ProcAdd) ("command.com");
 printf("Hello World!/n");
 return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值