问题标签 [visual-c++-2008]
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.
c++ - Visual C++ 2008 作为 Access 的前端
我正在开发一个需要我用 C++ 编写代码的数据库项目。我有使用 Microsoft Access 构建的关系数据库的框架。由于我想为用户提供一个 GUI,我正在尝试使用 Visual C++ 2008 来构建它。
我尝试将解决方案构建为 win32 控制台应用程序、MFC 应用程序和 CLR 应用程序,每一个都因各种错误而让我停下来。
我已经在网上搜索寻求帮助,但无济于事。如果有人能给我一些指导,或者更好的是,一个好的教程的链接,将不胜感激。
本
visual-studio - 根据VC++编译器版本进行条件编译
我正在将我们的 VC++ 项目从 Visual Studio 2005 (VC8) 迁移到 Visual Studio 2008 (VC9)。解决方案中的一些项目在项目设置的“附加库目录”字段中具有第三方库的路径。路径看起来像这样:
..\SomeLibrary\Lib\vc9\x86
如果我可以使用 Visual Studio 的“Property Page Macros”之一来替代编译器版本,这将非常有用,就像我可以使用 $(ConfigurationName) 来替代“Debug”或“Release”一样。类似以下的内容将是完美的:
..\SomeLibrary\Lib\ $(CompilerVersion) \x86
不幸的是,我找不到合适的宏。
请注意,当我说“宏”时,我指的是 Visual Studio 的“属性页宏”,而不是 C/C++ 预处理器宏。据我所知,您不能在项目设置中使用预处理器指令。
有谁知道这样做的方法?
com - 使用 def 文件和 extern "C" 修改名称
我正在创建一个基本的 COM 组件,以便练习创建它们。
我正在使用 PRIVATE 关键字从 .def 文件中导出 DllRegisterServer、DllUnregisterServer、DllGetClassObject 和 DllCanUnloadNow(我认为 Microsoft 需要它)。
Anway,我用 extern "C" 指定了所有 4 个函数,但我仍然在弄乱。这是我的.def:
这是来自 dumpbin /EXPORTS 的修改
我知道 extern "C" 有帮助,因为没有它我会得到非常糟糕的修饰,但我认为带有 extern "C" 的 .def 应该摆脱名称修饰?
我的编译器是 VC++ Express 2008。链接器命令行:
/OUT:"G:\Programming\COM\BasicMathCOM\BasicMath\Release\BasicMath.dll" /INCREMENTAL:NO /NOLOGO /DLL /MANIFEST /MANIFESTFILE:"Release\BasicMath.dll.intermediate.manifest" /MANIFESTUAC:"级别='asInvoker' uiAccess='false'" /DEBUG /PDB:"g:\Programming\COM\BasicMathCOM\BasicMath\Release\BasicMath.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /DYNAMICBASE / NXCOMPAT /MACHINE:X86 /ERRORREPORT:PROMPT kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
+/DEF:BasicMath.def,我在附加选项下添加的。
visual-c++-2008 - 如何隐藏子进程的控制台窗口?
我正在尝试编写一个非常简单的程序来替换现有的可执行文件。它应该稍微调整它的参数并使用新参数执行原始程序。它应该由第三方库自动且静默地调用。
它运行良好,但它会弹出一个控制台窗口来显示调用程序的输出。我需要那个控制台窗口不存在。我不关心程序的输出。
我最初的尝试是设置为控制台应用程序,所以我想我可以通过编写一个新的 Windows GUI 应用程序来解决这个问题。但它仍然会弹出控制台。我假设原始命令被标记为控制台应用程序,因此 Windows 会自动为其提供一个控制台窗口以在其中运行。我还尝试用对 system() 的调用替换我对 _exec() 的原始调用,以防万一。没有帮助。
有谁知道我怎样才能让这个控制台窗口消失?
这是我的代码:
visual-studio-2008 - vc9 错误 4430 在一台机器上,而不是在另一台机器上
在两台不同的机器上编译相同的代码。我们有未在 CPP 文件中明确定义的 int 函数。
一台机器编译得很好,另一台没有。真正奇怪的是他们直到昨天都工作正常。其中一台机器丢失了它的 Visual Studio 包含和链接路径,现在编译变得更加麻烦。
我们应该寻找什么?
提前致谢。
mfc - 编译时错误 C4407
我们的代码中有以下类结构
在A类的实现中,我们有以下内容:
请注意 Base1 和 Base2 不继承自 CDialog 或任何其他 MFC 类。
在 VC6 上编译成功。但在 VC9 上,我们得到以下错误代码:
错误 C4407:在指向成员表示的不同指针之间进行强制转换,编译器可能会生成不正确的代码。
此错误代码指向 ON_WM_SIZE 的位置。
谁能告诉我一个解决方案。提前致谢。
游戏玩家
c++ - VS2008:我可以用不同文件夹中的2个同名CPP文件构建一个项目吗?
这是我的文件夹结构:
在构建项目时,我收到一个链接错误(LNK2028:未解析的令牌等等......),说一些符号没有定义。我已经确认所有符号都已定义,并且所有声明的函数都有相应的定义。
我有一种感觉,在编译我的项目时,两个文件夹中的文件在输出文件utility.cpp
夹中被编译成相同的文件。utility.obj
结果,一个覆盖另一个。
- 这是预期的行为吗?
- 如何构建具有两个同名文件(尽管位于不同文件夹中)的 C++ 二进制文件?
c++ - 迭代器列表在 std::string 构造函数中损坏
下面在 VS2005 SP1 的调试配置中编译的代码显示了两条带有“ITERATOR LIST CORRUPTED”通知的消息。
代码片段
它是编译器或标准库中的错误吗?
c - extern "C" 在 msvc++ 9.0 中无效
我为两个编译器管理 JNI 项目:MSVC++ 8.0 和 9.0,我的 cpp 文件包含以下实现: extern "C" { JNIEXPORT jlong JNICALL Java_context_ServiceProviderContext_StartServiceProvider (JNIEnv * env, jclass, jstring jspath){ ..... }
在depends.exe 实用程序的帮助下,我可以看到MSVC 8.0 成功导出了预期的函数:Java_context_ServiceProviderContext_StartServiceProvider 但是在MSVC 9.0 下编译让我抓狂,它的导出就像完全忽略extern "C" 一样。depends.exe 向我展示:_Java_context_ServiceProviderContext_StartServiceProvider@12
有谁知道 9.0 项目中究竟是什么导致了这种行为?