大家好我想在visual basic 10中用c ++代码创建一个简单的dll文件,但这里得到一些错误就是代码 这个dll的功能是输入任何名称,并在其他应用程序调用时显示名称(两者都是控制台应用程序)
//This is demo.h file
#ifdef DEMODLL_EXPORTS
#define DEMODLL_API __declspec(dllexport)
#else
#define DEMO_API __declspec(dllimport)
#endif
namespace Demo
{
class mydemo
{
char name[30];
public:
static DEMODLL_API char getdata(char name);
static DEMODLL_API char displaydata(char name);
};
}
这是demo.cpp文件
#include "stdafx.h"
#include "demo.h"
#include <stdexcept>
using namespace std;
namespace Demo
{
char mydemo :: getdata(char name)
char mydemo :: displaydata(char name)
{
return name;
}
}
这些是错误
demo.h(13): error C2144: syntax error : 'char' should be preceded by ';'
demo.h(13): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
demo.h(13): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
demo.h(14): error C2144: syntax error : 'char' should be preceded by ';'
demo.h(14): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
demo.h(14): error C2086: 'int Demo::mydemo::DEMODLL_API' : redefinition
demo.h(13) : see declaration of 'Demo::mydemo::DEMODLL_API'
demo.h(14): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
demo.cpp(12): error C2144: syntax error : 'char' should be preceded by ';'
demo.cpp(12): error C2761: 'char Demo::mydemo::getdata(char)' : member function redeclaration not allowed
请帮帮我
答案 0 :(得分:0)
#ifdef DEMODLL_EXPORTS #define DEMODLL_API __declspec(dllexport) #else #define DEMO_API __declspec(dllimport) #endif
在定义DEMODLL_EXPORTS
时定义一个宏,在未定义DEMODLL_EXPORTS
时定义另一个宏(具有不同的名称)。在您遇到这些错误的构建中,符号DEMODLL_API
未定义为宏,因此编译器认为它是一个标识符(从未声明过)。
char mydemo :: getdata(char name) char mydemo :: displaydata(char name) {...}
这没有多大意义。您是否打算为getdata
提供正文?