小编tvS*_*tic的帖子

从Windows系统范围的Visual Studio代码迁移到用户设置的迁移过程是什么?

我是Visual Studio Code的系统范围分发的现有用户.我被提示切换到新的用户设置分发.这指示我下载用户设置安装程序.运行此安装程序时,它告诉我在安装新安装程序之前应该卸载现有安装.

卸载过程不会指示将保留设置和扩展名.

我想确保在迁移到新版本时保留所有现有设置和扩展.这可能吗?

visual-studio-code

13
推荐指数
1
解决办法
1867
查看次数

为什么Eclipse中没有C++透视图和新项目选项?

我从Eclipse网站安装了"Eclipse IDE for Java Developers"包.我也使用C++项目,所以我使用"安装新软件..."菜单选项来安装"C/C++开发工具"包.执行此操作并重新启动Eclipse后,C++透视图未出现; 单击"打开透视图"按钮未显示"C/C++"选项.我还发现我无法创建一个C++项目; "C/C++"树节点未出现在"新建项目"向导中.Java透视图和新项目选项可用.

我通过转到"已安装的安装详细信息"对话框验证了CDT已安装 - "已安装的软件"列表中出现"C/C++开发工具".我尝试卸载此软件包并重新安装它但没有成功.我尝试完全删除Eclipse安装并安装"Eclipse IDE for C/C++ Developers".此安装中也没有C/C++选项.我检查了.log工作区目录中的文件,发现没什么异常.

为什么在Eclipse中安装CDT功能后C/C++功能不可用?

c++ eclipse

6
推荐指数
1
解决办法
9971
查看次数

为什么没有跨 DLL 捕获此异常?

我有一个 DLL 会抛出这样的异常:

throw POMException(err, drvErr, errmsg);
Run Code Online (Sandbox Code Playgroud)

调用代码在一个单独的程序中,并有一个 try、catch 块,如下所示:

try
{
    // function in separate DLL
}
catch (TXNPDO_Exception& e)
{
    SR_PERFLOG_MSG(SR_PERFMASK_SELECT, "ERROR selectInStages");
    TXNDBO_THROW(e);
}
Run Code Online (Sandbox Code Playgroud)

TXNPDO_Exception包含文件中定义的位置:

#define TXNPDO_Exception POMException
Run Code Online (Sandbox Code Playgroud)

在调试器中运行它时,它指出POMException未处理。我什至添加了一个catch(...)条款,但仍然没有处理。

我怀疑这与 Visual C++ 编译参数有关,因为有问题的 DLL 库是一个遗留库,与调用它的程序分开编译。我正在使用 Visual Studio 2003。

DLL cpp 文件使用以下(相关)标志编译:/X /GR /Ob1 /Zi /GX /Od /MDd /LD. 正确处理调用程序中的其他异常。

谁能提供为什么这个异常没有传播到调用程序的原因?

编辑:

DLL 库以前是使用我无法使用的可能的构建环境和代码更改编译的。先前编译的库正确传播异常。

我正在使用相同的编译器编译客户端程序,使用大部分相同的开关:(-Od -W3 -Z7 -MDd -GX -GR -Zm800没有/X/Ob1/Z7代替/Zi …

c++ visual-c++

5
推荐指数
1
解决办法
2282
查看次数

从基类下载时,是否可以调用派生对象的虚方法?

给定以下类结构:

class Base
{
    virtual void outputMessage() { cout << "Base message!"; }
};

class Derived : public Base
{
    virtual void outputMessage() { cout << "Derived message!"; }
}
Run Code Online (Sandbox Code Playgroud)

..和这段代码:

Base baseObj;
Derived* convertedObj = (Derived*) &baseObj;
convertedObj->outputMessage();
Run Code Online (Sandbox Code Playgroud)

..输出将是"基本消息!".

有没有办法转换或操纵对象,以使Derived的outputMessage方法版本被多态调用?

编辑:我将尝试说明我之后的原因:

我正在编写与我们的主系统挂钩的迁移工具.出于这个原因,我需要访问受保护的成员方法,或自定义现有的虚拟方法.前者我可以通过定义派生类并将对象强制转换为静态来调用方法.我不能做的是改变我不静态调用的方法的行为(即在代码库中的其他地方调用的方法).

我还尝试直接创建派生类的对象,但由于对通过构造函数传递的对象的操作,这会导致系统其他部分出现问题.

c++ polymorphism inheritance

2
推荐指数
1
解决办法
375
查看次数

如何在 git 中将修改和重命名提交拆分为单独的提交?

在 git 工作树中,我有一个文件“foo”。我对该文件进行了重大修改,然后将其重命名为“bar”。Git 将此检测为已删除/新文件。根据这个答案,为了让 git 检测到它们是同一个文件,应该先提交移动,然后是修改。鉴于文件已被修改和移动(但尚未暂存或提交),首先提交移动操作然后进行修改(确保我不会在此过程中丢失我的修改)要遵循的程序是什么?

同样,如果移动/修改已经在单个提交中提交,那么执行此操作的程序是什么?

git

1
推荐指数
1
解决办法
446
查看次数