问题标签 [visual-c++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3178 浏览

python - 如何将所有 Visual Studio 2008“宏”传递给 Python 脚本?

[注意:这个问题与这个问题相似但不一样。]

Visual Studio 定义了几十个“宏”,它们是一种模拟环境变量(与 C++ 宏完全无关),其中包含有关正在进行的构建的信息。例子:

这是我看到的完整的 43 个内置宏集(您的宏可能会有所不同,具体取决于您使用的 VS 版本和启用的工具):

其中,只有四个(、 和FrameworkDirFrameworkSDKDir设置在用于构建事件的环境中。VCInstallDirVSInstallDir

正如 Brian 所提到的,用户定义的宏可以定义为设置在构建任务执行的环境中。我的问题是内置宏。

作为构建过程的一部分,我使用 Visual Studio 构建后事件来运行 python 脚本。我想将整个宏集(内置和用户定义)传递给我在环境中的脚本,但我不知道如何。在我的脚本中,我可以访问常规环境变量(例如,Path、SystemRoot),但不能访问这些“宏”。我现在所能做的就是将它们作为命名选项逐个传递,然后在我的脚本中进行处理。例如,这是我的 Post-Build Event 命令行的样子:

除了让人头疼之外,Post-Build Event 命令行的大小也有限制,所以即使我想通过这种方法也无法传递几十个宏,因为命令行被截断了。

有谁知道是否有办法将整组宏名称和值传递给不需要切换到 MSBuild(我认为它不适用于本机 VC++)或其他类似 make 的构建工具的命令?

0 投票
2 回答
3335 浏览

winapi - 以编程方式修改/检测本地安全策略

是否可以至少执行以下操作之一:

1) 检测本地安全策略的设置(帐户:限制本地帐户使用空白密码只能登录控制台)

2)修改该设置

使用 Win32/MFC?

0 投票
1 回答
7408 浏览

winapi - 获取 Windows 上任何用户的 CSIDL_LOCAL_APPDATA 路径

是否有任何 Win32/MFC API 来获取我想要CSIDL_LOCAL_APPDATA任何用户(不仅是当前登录的用户)?假设我有一个“域\用户”形式的用户列表,我想获得他们的路径列表 - 这可能吗?

0 投票
27 回答
458870 浏览

visual-c++ - 为什么我在 Visual Studio 中编译 C++ 项目时会出现致命错误“LNK1104:无法打开文件 'C:\Program.obj'”?

我在 Visual Studio 2008 中创建了一个新的 C++ 项目。尚未编写任何代码;只有项目设置已更改。

当我编译项目时,我收到以下致命错误:

致命错误 LNK1104:无法打开文件 'C:\Program.obj'

0 投票
6 回答
19314 浏览

c++ - 首次编译错误时自动停止 Visual C++ 2008 构建?

我知道我可以编译单个源文件,但有时——比如说,在编辑许多.cpp文件使用的头文件时——需要重新编译多个源文件。这就是 Build 的用途。

VC9 (Visual C++ 2008) 中“Build”命令的默认行为是尝试编译所有需要它的文件。有时这只会导致许多失败的编译。我通常只是注意错误并按 ctrl-break 手动停止构建。

有没有办法配置它,使构建在第一个编译错误(不是第一个失败的项目构建)时自动停止?

0 投票
4 回答
2960 浏览

windows - 在 Visual C++ 中构建错误/成功的声音?

在长时间的 Visual C++ 构建中,听到某种(可选)声音对于构建/编译结果非常有帮助,例如:

  • 个别编译错误
  • 文件编译成功/失败
  • 构建成功/失败
  • 批量构建成功/失败

有谁知道如何在 Visual C++(尤其是 Vista 上的 Visual C++ 2008)中为这些类型的构建事件启用声音?

0 投票
2 回答
5494 浏览

security - 是否可以冒充用户而不登录?

是否可以在不提供用户名/密码的情况下模拟用户?基本上,我想CSIDL_LOCAL_APPDATA使用该功能为用户(不是当前用户)获取ShGetFolderPath()。我目前拥有的只是该用户的 SID。

0 投票
4 回答
1019 浏览

c++ - 不能从调试 dll 很好地导入间接 Typelib

使用 VC2005,我有 3 个项目要构建:

  • libA(包含一个类型库,生成 libA.dll):IDL 有一行library libA { ...
  • libB(包含一个导入libA的typelib,结果是libB.dll):IDL有一行 importlib( "libA " );
  • libC(导入 libB):源文件之一包含#import <libB.dll>

由编译器按以下#import <libB.dll>方式处理(根据文档):

  1. 搜索 %PATH% 的目录
  2. 搜索 %LIB% 的目录
  3. 搜索“其他包含路径”(/I 编译器选项)

编译 libC 时,我可以看到 cl.exe 清楚地能够在可执行路径上找到 libA.dll(使用 Filemon.exe)

VC 错误 C4772: #import of typelib 与另一个依赖项

但是,仍然找不到 libA 命名空间,并且所有对 libA 类型的引用都替换为__missing_type__

(编辑)同时,我发现问题仅在使用调试 dll 时出现。

以前有人见过这个问题吗?并解决了?

0 投票
5 回答
1602 浏览

visual-c++ - 如何在 VC++ 2005 中重命名整个项目

我为自己做了一个非常大的项目,最近一个客户要求他们自己的版本进行一些修改。项目名称相当愚蠢,我的客户想要源代码,所以我认为最好将所有文件重命名为

等等。不幸的是,在我将所有内容重新添加在一起之后,我看不到任何更改项目名称本身的方法。另外,现在我在编译时遇到了这个错误。

必须有一种更简单的方法来改变这一切,对吧?

0 投票
19 回答
70673 浏览

c++ - 奇怪的 MSC 8.0 错误:“ESP 的值未在函数调用中正确保存......”

我们最近尝试将我们的一些 Visual Studio 项目分解为库,并且在一个测试项目中,一切似乎都可以很好地编译和构建,其中一个库项目作为依赖项。但是,尝试运行该应用程序给了我们以下令人讨厌的运行时错误消息:

运行时检查失败 #0 - ESP 的值未在函数调用中正确保存。这通常是调用使用不同调用约定声明的函数指针的结果。

我们甚至从未为我们的函数指定调用约定(__cdecl 等),将所有编译器开关保留为默认值。我检查了项目设置对于跨库和测试项目的调用约定是一致的。

更新:我们的一位开发人员将“Basic Runtime Checks”项目设置从“Both (/RTC1, equiv. to /RTCsu)”更改为“Default”,运行时消失了,程序显然运行正常。我完全不相信这一点。这是一个适当的解决方案,还是一个危险的黑客攻击?