【问题标题】:Error C3861: 'execute_assert': identifier not found错误 C3861:“execute_assert”:找不到标识符
【发布时间】:2016-09-08 11:38:57
【问题描述】:

好的,这应该很容易。 我正在编写一个 dll,其源代码太大而无法在此处发布。 但它只有三个来自相同重复代码的错误...

// Test parameter s
execute_assert(s >= MAX_ACL_DEPTH, "MAX_ACL_DEPTH too small");

现在我知道 EXECUTE_ASSERT 是一个宏,所以我想我只需要包含一个标题。

我只需要知道标题。

我正在使用 Visual Studio 2012 Ultimate 构建。

谢谢。

【问题讨论】:

  • 您是否尝试过在 e.g. MSDN?你知道 C 和 C++ 都区分大小写吗?
  • 您是否注意到唯一记录在案的是EXECUTE_ASSERT,它是在DirectShow 中定义的(不是 Windows SDK 的一部分),而您需要execute_assert?这些都是不相关的事情。您的应用程序可能在内部某处定义了execute_assert。在您的项目中进行全局搜索。
  • 我认为其中一个问题是代码是在 Xubuntu 中生成的,我想构建一个 .lib 文件,所以我将所有内容都导入了 Windows,包括标题。

标签: c++ c visual-c++


【解决方案1】:

感谢您的洞察力。 我包括...

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses

添加后在项目属性中

#include <Streams.h>
#include <wxdebug.h>

改变了

execute_assert

EXECUTE_ASSERT

结果...

1>  Generating Code...
1>c:\users\...\Analytical.lib
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

【讨论】:

    猜你喜欢
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多