lib와 dll의 관계
lib ,lib dll
(1)lib ,dll 。
, lib 。
, dll 。
, 。
(2) lib dll 。lib , dll 。 dll , lib , dll 。 lib , lib , 。 lib : 。 , , , , 。
(3) , , (.LIB) , DLL , DLL ,DLL , LIB DLL , , , , DLL , , 。 ,DLL .LIB , 。
、 dll
1、 dll
dll .h 。 dll , 。
2、 dll
dll 、 。 dll , 。 ,dll 。
3、 dll (.dll)
dll , 。dll 、 ,.dll 。 , .exe .dll , .lib dll 。
(DLL) 。 , 。 DLL , DLL 、 。DLL 。 DLL 。
: (.dll .exe ) DLL 。 , , 。
。DLL , , , , , MFC , , 。
lib dll
dll
lib DLL
C++ , , , 。 lib DLL 。
C++ , ,
int main(){return 0;}
, 。
, , , main :
#include <stdio.h>
int main()
{
printf("Hello World!
");
return 0;
}
, , , :
#include <stdio.h>
void ShowHello()
{
printf("Hello World!
");
}
int main()
{
ShowHello();
return 0;
}
, , ,
// main.cpp
void ShowHello();//[1]
int main()
{
ShowHello();
return 0;
}
// hello.cpp
#include <stdio.h>
void ShowHello()
{
printf("Hello World!
");
}
VC , , 。 VC ,
--------------------Configuration: hello - Win32 Debug--------------------
Compiling...
main.cpp
hello.cpp
Linking...
hello.exe - 0 error(s), 0 warning(s)
。
, , , , , : , lib , , lib , 。
VC static library , hello.cpp , , lib , hello.lib。
lib :
1 -〉link-〉Object/Library Module hello.lib
2
#pragma comment(lib, "hello.lib")
C++ , , hello.lib
。
lib , obj 。obj cpp , ,lib obj , cpp obj , lib obj, , , link, , , 。 , lib EXE DLL 。
lib, , , lib, obj , , DLL 。 lib DLL 。 DLL, , DLL , , 。
, DLL EXE :
1 EXE main WinMain, DLL DllMain
2 EXE , , , DLL , , DLL , DLL [2], DLL , DLL ,DLL DLL EXE 。 DLL EXE main.cpp hello.cpp , , 。
DLL , VC , , , 。
:
#ifdef DLL_EXPORTS
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif
。 DLL DLL_EXPORTS, DLL_API , DLL , 。 , 。
, DEF ,DEF , , , [4] DLL : , Windows API LoadLibrary GetProcAddress [5], GetProcAddress , DLL DEF , ( :?fnDll@@YAHXZ) , C++ , DEF , 。
, DLL , , , DLL 。 DLL, , __stdcall __cdecl , WINAPI , , , , , , 。
, 。 。 :
void foo(string& str)
{
str = "hello";
}
int main()
{
string str;
foo(str);
printf("%s
", str.c_str());
return 0;
}
foo main , foo , , foo DLL , , [6]。 “ ”,DLL EXE , foo ,
main return ,string 。
, DLL , , 。
, DLL -- API , :
CreateDC
ReleaseDC
, , 。
, ?
, , , 。 , 。
[1]: , , 。
[2]: DLL , 。
[3]:DEF , DEF , ATL COM 。
[4]: , , , , 。
[5]: MSDN。
[6]: , , DLL ,
.h , math.h :
int abs(int);
#include <math.h>
...abs(3,5);
。
.dll , SetWindowText() , user32.dll 。DLL 。
.lib , ( .obj) ( .exe) , .lib
( DLL ) , lib , SetWindowText()
user32.lib 。(.lib )
【http://lixiangtao2002.blog.163.com/blog/static/1819294772011211112731419/】
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.