DLL 작성 및 호출(기본)
2651 단어 dll
매우 간단하다. 첫째, 동적 라이브러리 새로 만들기;2. 자신이 쓴 동적 라이브러리(두 가지 방식)를 호출한다.
1. vc6 새 동적 링크 라이브러리 프로젝트(FirstDemo)
1. 헤더 파일(FD.h)
/* */
extern "C" _declspec(dllexport) int Sum(int a,int b);//
extern "C" _declspec(dllexport) int Max(int a,int b);//
2, Cpp 파일(FD.cpp)
#include "FD.h"
/* */
extern "C" _declspec(dllexport) int Sum(int a,int b){
return a+b;
}
extern "C" _declspec(dllexport) int Max(int a,int b){
if(a>b) return a;
else return b;
}
2, vc6 새 테스트 생성의FirstDemo.dll의 Win32 Console Application 엔지니어링(TestDll)
/* 두 가지 방법으로 테스트*/
1. 헤더 파일(YSDY.h) - 암시적 호출 테스트
/**
* dll, xxx.dll xxx.lib Debug 。 #pragma comment(lib,"./Debug/xxx.lib")
* : , dll , 。 ......
*/
#pragma comment(lib, "./Debug/FirstDemo.lib")
int testYS();
2, Cpp 파일(YSDY.cpp) - 암시적 호출 cpp
#include <windows.h>
#include <iostream.h>
/* dll , dll */
extern "C" _declspec(dllimport) int Sum(int a,int b);
int testYS(){
int c=Sum(4,8);// 。
cout<<c<<endl;
return 0;
}
3. 헤더 파일(XSDY.h) - 호출 테스트 표시
int test();
4, Cpp 파일(XSDY.cpp) - 호출 cpp 표시
#include <iostream.h>
#include <windows.h>
/**
* dll
* dll
*/
int test(){
typedef int(*pSum)(int a,int b);// pSum
pSum sum=NULL;
HINSTANCE hDLL=NULL;
hDLL=LoadLibrary("FirstDemo.dll");// FirstDemo.dll ,
sum=(pSum)GetProcAddress(hDLL,"Sum"); // ( )
if(sum){
int A=sum(2,7);
cout<<A<<endl;
}
FreeLibrary(hDLL);// FirstDemo.dll ;
return 0;
}
5. 입구main
#include <windows.h>
#include <iostream.h>
#include "XSDY.h"
#include "YSDY.h"
/**
*
*/
void main(void){
test();//dll
testYS();//
}
코드: 첨부 파일에 두 개의 프로젝트가 있습니다. 첫 번째는 dll 프로젝트이고, 두 번째는 dll를 호출하는 테스트 프로젝트입니다.
너무 늦었어, 잤어...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
LoadLibrary에서 126 오류가 발생하면 원인이되는 파일 이름을 찾는 방법Loadlibrary에서 DLL을 동적으로 로드할 때 로드 실패입니다. 실패한 파일 이름은 알려주지 않습니다. 로드하고자 하는 DLL 자체를 로드할 수 없다면 이야기는 간단하지만, 대상 DLL이 다른 DLL을 로드하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.