您的位置:首页 > 其它

dll,lib及引用源码

2013-12-26 16:22 246 查看
Lib库

LibA.h

#pragma once
class LibA
{
public:
LibA(void);
~LibA(void);
void show();
};


LibA.cpp

#include "StdAfx.h"
#include "LibA.h"
#include <iostream>
using namespace std;

LibA::LibA(void)
{
}

LibA::~LibA(void)
{
}

void LibA::show()
{
cout<<"LibA show"<<endl;
}


DLL库(静态引用)

dll.h

#ifndef _DLL_H_
#define _DLL_H_

#ifdef BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */

DLLIMPORT void FuncA(void);

class DLLIMPORT DllClass
{
public:
DllClass();
virtual ~DllClass(void);
void show();
private:

};
#endif /* _DLL_H_ */


dllmain.cpp
# define BUILDING_DLL
#include "dll.h"
#include <windows.h>
#include <iostream>
using namespace std;

DllClass::DllClass()
{

}

DllClass::~DllClass ()
{

}
void DllClass::show()
{
cout<<" Class DLLClass show"<<endl;
}

DLLIMPORT void FuncA(void)
{
cout<<"FuncA show"<<endl;
}

BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
DWORD reason        /* Reason this function is being called. */ ,
LPVOID reserved     /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;

case DLL_PROCESS_DETACH:
break;

case DLL_THREAD_ATTACH:
break;

case DLL_THREAD_DETACH:
break;
}

/* Returns TRUE on success, FALSE on failure */
return TRUE;
}


控制台引用代码

Tmain.cpp

#include "stdafx.h"
#include "LibA.h"
#include "dll.h"

int _tmain(int argc, _TCHAR* argv[])
{
LibA liba;
liba.show();

DllClass dll;
dll.show();

FuncA();

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: