试图制作win32控制台DLL文件,但有一些问题

时间:2013-08-16 19:34:22

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

大家好我想在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

请帮帮我

1 个答案:

答案 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提供正文?