Windows에서 GCC를 사용하여 DLL 내부 클래스 호출
3699 단어 GCC
IDE
:
DEV-C++GCC 4.1.2
다음 단계가 필요합니다.
1.
将
DLL
공정의
XX.a,XX.def,XX.dll
그리고
클래스 헤더 파일
프로젝트 폴더로 복사
2.
프로젝트 포함 클래스의 헤더 파일
3.
에서
“
프로젝트 옵션
”-
》
“
매개 변수
”-
》
“
연결기
”
증대
XX.a
라이브러리 파일
4.
호출:클래스 호출과 동일
참고:
DLL
프로젝트 헤더 파일은 매크로 정의를 추가해야 합니다
1.#ifdef _MS_WINDOWS_
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
#else
#define DLLIMPORT
#endif
2. “ ”-》“ ”-》“C++ ” -D_MS_WINDOWS_
3. “ ”-》“ ”-》“C++ ” -D_MS_WINDOWS_
:
//DLL.H
#ifndef _DLL_H_
#define _DLL_H_
#ifdef _MS_WINDOWS_
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
#else
#define DLLIMPORT
#endif
#include
using namespace std;
class DLLIMPORT DllClass
{
public:
DllClass();
virtual ~DllClass(void);
string kk;
private:
};
#endif /* _DLL_H_ */
//DLL.CPP
/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include
DllClass::DllClass()
{
kk = "aaaaaaaaaa";
}
DllClass::~DllClass ()
{
}
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;
}
/**********************************************************************/
//USEDLL.CPP
#include
#include
#include "dll.h"
using namespace std;
int main(int argc, char *argv[])
{
DllClass dc;
cout << dc.kk << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
RUN:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Windows 환경에 프리 C 개발 환경을 구축했을 때의 메모C 실험 (샘플 프로그램 작성)을하고 싶기 때문에 작업장 이외의 집에서 C 개발 환경을 구축한다 Visual Studio는 좀 무겁기 때문에, 이외의 프리의 개발 환경을 구축하고 싶다. Windows7 Home 32...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.