Здравствуйте, прошу показать мне как написать следующие задачу. Я успешно собрал dll файл, и вызвал из него функцию printing на данном этапе все работает, функция вызывается все ок.
Код:
Project2.h
#ifdef PROJECT2_EXPORTS
#define PROJECT2_API /*extern "C"*/ __declspec(dllexport)
#else
#define PROJECT2_API __declspec(dllimport)
#endif
PROJECT2_API void printing(char* pChar);
Project.cpp
// Project2.cpp : Defines the exported functions for the DLL application.
//
#include "stdafx.h"
#include "Project2.h"
#include "Header1.h"
PROJECT2_API void printing(char* pChar) {
char a[] = "Example String";
strcpy_s(pChar, strlen(a) + 1, a);
}
dllmain.cpp
// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"
#include "Header1.h"
int iParam;
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
iParam = 7;
break;
case DLL_THREAD_ATTACH:
iParam += 1;
break;
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
const int GetSomeParam() {
return iParam;
}
Пример для быстрого воспроизводства для Visual St...
Я хочу написать для dll класс так что бы можно было вызывать методы в этом классе.
Project2.h
#ifdef PROJECT2_EXPORTS
#define PROJECT2_API /*extern "C"*/ __declspec(dllexport)
#else
#define PROJECT2_API __declspec(dllimport)
#endif
class xyz
{
private:
int abc;
public:
PROJECT2_API void printing(char* pChar) {
char a[] = "Example String";
strcpy_s(pChar, strlen(a) + 1, a);
abc = 5;
}
PROJECT2_API int printing_int() { // return 5
return abc;
}
};
Методы для dll вызываются последовательно с начало printing потом printing_int свойство abc не должно изменятся между этими вызовами (во общем все как обычно) ожидается что printing_int вернет 5.
Я не знаю как можно сделать экспорт методов класса в dll -
но я нашел по этой ссылке что можно… компиляция с новым Project2.h прошла успешно, однако при попытке вызвать printing из dll ее не удается найти (нет такой функции). Может кто ни буть написать пример как мне экспортировать в dll методы класса?