c++动态库(二)NoMFC动态库

一、建立一个NoMFC动态库:


//noMFCtest.h
#ifndef LIB_H
#define LIB_H
extern "C"  int _declspec(dllexport) add(int a,int b);//必须有extern "C"
#endif

//noMFCtest.cpp
#include "noMFCdlltest.h"

int add(int a,int b)
{
 return a + b;
}

二、调用动态库控制台程序
1、动态加载调用库

// noMFCdllcall.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>//包含加载动态库、加载库函数程序头文件
#include <iostream>
typedef int(*lpAddFun)(int,int);//回调函数指针
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
 HINSTANCE hDll;
 lpAddFun addFun;

 hDll = LoadLibrary(_T(".//noMFCdlltest.dll"));//加载动态库,注意必须有_T宏,转化为const wchar
 
 if (hDll != NULL)
 {
  addFun = (lpAddFun)GetProcAddress(hDll,("add"));

  if (addFun != NULL)
  {
   cout<<"1+2="<<addFun(1,2);
   int i;
   cin>>i;
  }
 }


 return 0;
}

 

2、静态链接lib调用

#include "stdafx.h"
#include <windows.h>//包含加载动态库、加载库函数程序头文件
#include <iostream>

 

#include "..//noMFCdlltest//noMFCdlltest.h"
#pragma comment(lib,"noMFCdlltest.lib")
extern "C" _declspec(dllimport) int add(int a,int b);

 

using namespace std;


void test3();

int _tmain(int argc, _TCHAR* argv[])
{

 test3();

 return 0;
}

 


void test3()
{
 cout<<"1+2="<<add(1,2);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值