我的C ++ DLL出现了新问题...我尝试导出整个类而不是只导出一个方法。但是程序现在不想编译,因为全局范围没有GetUrl
这是我的“UrlConnector.h”:
#define ConnectMe __declspec( dllexport )
namespace ConnectHttps
{
class ConnectMe
{
void GetUrl(char *url, unsigned int bufferLength);
};
}
#include "UrlConnector.h"
#include "MyConnectionClass.h"
#include
using namespace std;
namespace ConnectHttps
{
void ConnectMe::GetUrl(char* url, unsigned bufferLength)
{
MyConnectionClass initSec;
string response = initSec.GetResult();
strncpy_s(url, bufferLength, response.c_str(), response.length());
}
}
现在,我希望能够从中创建一个DLL,我想制作一个测试程序来从一个dll调用类和方法GetUrl。我正在使用Visual Studio 2010与Visual C ++ DLL
我也设法阅读this from the MSDN和this tutorial,但我似乎无法让它工作!
我真的很感激任何帮助!
答案 0 :(得分:1)
除非我弄错了,否则你似乎没有给你的班级起个名字。 您使ConnectMe不是类名,而是导出类的宏,但您的类应该有一个名称
也许试试
#define EXPORT_IT __declspec( dllexport )
namespace ConnectHttps
{
class EXPORT_IT ConnectMe
{
void GetUrl(char *url, unsigned int bufferLength);
};
}
此外,我不是百分之百确定这一点,因为我目前无法访问编译器,但键入:
namespace ConnectHttps {
...
}
在.cpp文件中不正确。相反,你应该:
void ConnectHttps::ConnectMe::GetUrl(char* url, unsigned bufferLength)
{
MyConnectionClass initSec;
string response = initSec.GetResult();
strncpy_s(url, bufferLength, response.c_str(), response.length());
}