我想在我的程序中使用一些nss3.dll
代码。为此,我决定声明它需要的所有复合数据类型,并用它们调用dll文件中的函数。
我在firefox源代码中使用了一个文件,看看如何正确使用我需要的功能。在其中一个函数中,它声明了这些复合数据类型之一(secuPWData
)并传递变量。这是我粘贴到我的代码中的定义没有任何错误:
typedef struct {
enum {
PW_NONE = 0,
PW_FROMFILE = 1,
PW_PLAINTEXT = 2,
PW_EXTERNAL = 3
} source;
char *data;
} secuPWData;
这个结构的声明在我看到的代码中看起来像这样:secuPWData pwdata = { PW_NONE, NULL };
当我尝试使用类似(或甚至相同)的声明时,它会抱怨PW_NONE
属性,声称它未定义。当我试图在其位置传递0值时,它告诉我' 类型" int"的值不能用于初始化类型" enum secuPWData ::" '的实体。为了尝试调试这个问题,我尝试在声明的基础上粘贴定义,没有任何改变。
导致此问题的原因是什么?
感谢您的帮助。
答案 0 :(得分:0)
#include <iostream>
using namespace std;
typedef struct {
enum {
PW_NONE = 0,
PW_FROMFILE = 1,
PW_PLAINTEXT = 2,
PW_EXTERNAL = 3
} source;
char *data;
} secuPWData;
int main() {
secuPWData pwdata = { secuPWData::PW_NONE, NULL };
return 0;
}
为我工作.. ideone - link