错误:全局范围没有GetUrl

时间:2010-10-28 13:31:51

标签: c++ visual-studio-2010 dll dllexport

我的C ++ DLL出现了新问题...我尝试导出整个类而不是只导出一个方法。但是程序现在不想编译,因为全局范围没有GetUrl
这是我的“UrlConnector.h”:

#define ConnectMe __declspec( dllexport )

namespace ConnectHttps { class ConnectMe { void GetUrl(char *url, unsigned int bufferLength); }; }


这是我的UrlConnector.cpp中没有编译的部分:
#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 MSDNthis tutorial,但我似乎无法让它工作! 我真的很感激任何帮助!

1 个答案:

答案 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());
}