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에 따라 라이센스가 부여됩니다.