当前位置: 首页 > 知识库问答 >
问题:

无法解析静态变量[重复]

许博
2023-03-14

在我的VC++2008项目中,我创建了两个文件globals.h和globals.cpp,如下所示:

glboals.h:

#pragma once

extern ULONG g_ulMAPIUnicodeFlag;

globals.cpp:

#include "StdAfx.h"
#include "Globals.h"
#include <mapidefs.h>

#ifdef _UNICODE

static ULONG g_ulMAPIUnicodeFlag = MAPI_UNICODE;

#else

static ULONG g_ulMAPIUnicodeFlag = 0;

#endif

然后我在另一个文件testglboaldlg.cpp中使用全局变量,如下所示:

#include "Globals.h"

...

void CTestGlobalDlg::OnBnClickedButton1()
{
    // TODO: Add your control notification handler code here
    ULONG a;

    a = g_ulMAPIUnicodeFlag;
}

但得到以下链接错误:

TestGlobalDlg.obj : error LNK2001: unresolved external symbol "unsigned long g_ulMAPIUnicodeFlag" (?g_ulMAPIUnicodeFlag@@3KA)

共有1个答案

狄鹏
2023-03-14

static与extern正好相反。不要把两者混在一起。

#ifdef _UNICODE

ULONG g_ulMAPIUnicodeFlag = MAPI_UNICODE;

#else

ULONG g_ulMAPIUnicodeFlag = 0;

#endif
 类似资料:
  • 你能帮我理解一下为什么我不能增加静态变量吗?我面临以下问题:*错误LNK2001:未解析的外部符号“private:static unsigned int counter::m_curcounters”(?m_curcounters@counter@@0ia)*

  • 问题内容: 我已经定义了一个对象并声明了一个静态变量。在该方法中,当我尝试打印实例和类变量时,两者都打印相同的值。 不是实例变量吗?它应该打印0而不是50吗? 问题答案: 不,只有一个变量-您尚未声明任何实例变量。 不幸的是,Java允许您访问静态成员,就像通过相关类型的引用访问静态成员一样。这是IMO的设计缺陷,某些IDE(例如Eclipse)允许您将其标记为警告或错误- 但这是语言的一部分。您

  • 问题内容: 我的maven spring项目目录结构如下所示。我正在使用基于Spring-4注释的配置。我按如下方式配置资源。我尝试了许多Stackoverflow问题和其他网站中建议的许多方法 但是jsp文件无法加载资源,所有静态内容请求均返回404错误。我在jsp中尝试了这些东西, 编辑:我正在使用Servlet 2.5,因为到目前为止,我无法将项目从JBoss 5升级到更高版本。JBoss5

  • 出于某种原因,当我尝试运行这段代码时,它总是返回找不到符号。然后我发现问题是变量无法解析为变量。我不知道为什么它无法将其解析为变量。

  • 我正在尝试编写一段代码,当我选中两个复选框中的一个复选框时,它将更改我选择按钮时显示的消息。 我收到的错误消息是: "FirstWindow.java:12:错误:不能从静态上下文消息中引用非静态变量消息="good job\n";" 对于第12、37、53、57行。我已尝试在main中声明字符串变量,但我只会收到错误: “FirstWindow。java:38:错误:从内部类引用的局部变量必须是

  • 静态变量 PHP中局部变量分配在zend_execute_data结构上,每次执行zend_op_array都会生成一个新的zend_execute_data,局部变量在执行之初分配,然后在执行结束时释放,这是局部变量的生命周期,而局部变量中有一种特殊的类型:静态变量,它们不会在函数执行完后释放,当程序执行离开函数域时静态变量的值被保留下来,下次执行时仍然可以使用之前的值。 PHP中的静态变量通过