小编Meg*_*ron的帖子

VS 2010 Visual C# - 在同一解决方案中引用其他项目

我遇到了VS2010解决方案的问题.我在解决方案中有两个项目,一个是主程序,另一个是用于编辑数据/为第二个设置文件的程序.为了使我的第二个项目工作,我需要能够访问类/枚举/等.在第一个里面.

我知道VS2010你可以在另一个项目中添加一个项目作为参考.我试过这样做,似乎有效.我可以添加命名空间,并使用枚举,但是一旦我尝试编译第二个项目,就好像它丢失了引用,并且它返回了我在主项目中使用的所有类/枚举的错误.如果我删除引用并读取它,我可以再次使用第一个项目中的所有内容,但再次编译会破坏引用.

我已经尝试重建第一个项目,尝试更改输出类型等,但无济于事.有谁知道什么可能是错的?

作为参考,这是在Windows 7 64上,使用Visual Studio 2010 Ultimate,两者都是C#4.0项目.我正在使用System.Data.SQLite/System.Data.SQLite.Linq,但删除它们并没有使它工作.

提前致谢

c# visual-studio-2010

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

C++转换为派生和父结构

我想知道如何用C++做点什么.我希望能够创建此结构的实例

struct ComplexInstruction : simple_instr
{
    bool isHead;
    bool isTail;
};
Run Code Online (Sandbox Code Playgroud)

它复制simple_instr实例中的所有数据.基本上,我想做这样的事情

ComplexInstruction cInstr = instr; // <- instance of simple_instr
Run Code Online (Sandbox Code Playgroud)

并且让cInstr拥有instr中所有数据的副本,而不必复制每个字段(因为它们有很多).我不知道这是怎么做的,我不认为简单的铸造会起作用.另外,可以反过来吗?即具有ComplexInstruction的实例,并将其转换为simple_instr的实例.我认为这可以通过演员来完成,但我没有很多c ++的经验

提前致谢

c++ casting

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

如何判断指针是否指向派生类型的实例?

我有一个我无法修改的struct simple_instr.我从中创建一个派生类型:

struct ComplexInstruction : simple_instr
{
    ComplexInstruction(const simple_instr& simple) : simple_instr(simple) 
    {   
    }

    bool isHead;
    bool isTail;
    bool isPreHeader;
};
Run Code Online (Sandbox Code Playgroud)

我希望能够判断simple_instr的实例是否实际上是ComplexInstruction.我像这样创建ComplexInstructions:

   ComplexInstruction comInstr = *current;  // current is a pointer to a simple_instr
   ComplexInstruction* cInstr = &comInstr;
Run Code Online (Sandbox Code Playgroud)

我尝试使用 ComplexInstruction* cInstr = static_cast<ComplexInstruction*>(current); 并检查它是否等于null,但问题是转换总是成功,而cInstr永远不会等于null.

这样做的正确方法是什么?

c++ inheritance casting

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

无法对unordered_set进行排序

我有一个类的unordered_set ActiveStatusEffect该set声明如下:

boost::unordered_set<StatusEffects::ActiveStatusEffect> ActiveStatusEffects;
Run Code Online (Sandbox Code Playgroud)

ActiveStatusEffect定义如下:

class ActiveStatusEffect
    {
    public:
        StatusEffect* effect;
        int ReminaingTurns;
        bool operator<(const ActiveStatusEffect& ase) const
        {
            return *effect < *ase.effect;
        }
        bool operator>(const ActiveStatusEffect& ase) const
        {
            return *effect > *ase.effect;
        }
        bool operator==(const ActiveStatusEffect& ase) const
        {
            return *effect == *ase.effect;
        }
        bool operator!=(const ActiveStatusEffect& ase) const
        {
            return !((*this) == ase);
        }
    };
Run Code Online (Sandbox Code Playgroud)

StatusEffect之间的比较是对每个状态效果实例的唯一整数进行比较.

但是,如果我尝试按如下方式对效果进行排序:

std::sort(statusSet.begin(), statusSet.end(), [](StatusEffects::ActiveStatusEffect const &se1, StatusEffects::ActiveStatusEffect const &se2){return se1.effect->GetPriority() < se2.effect->GetPriority();});
Run Code Online (Sandbox Code Playgroud)

我在算法头文件中遇到很多错误,比如

错误198错误C2784:'_ Base1 :: difference_type std :: operator …

c++ sorting

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

您可以在画布上以弧线形式绘制图像吗?

您可以绘制弧线,也可以使用 javascript 在画布上绘制图像,但无论如何都可以做到吗?也就是说,无论如何都可以将图像绘制为圆弧而不是实线?

如果没有,是否有单独的方法来绘制图像?

我尝试沿着弧的点对图像进行逐像素转换,但它最终变得非常缓慢并且看起来很糟糕,因为我无法直接从 javascript 获取像素数据(或者你可以吗?我没有看到一种方式)所以对于每个像素,我需要计算沿弧线的点,绘制当前图像像素,重新获取它,将图像数据绘制到计算点,然后在画布上清除该点。

html javascript canvas

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

C++来自派生类和基类的来回转换

我想知道在C++中是否有办法完成以下任务:

我有一个被调用的基类ResultBase和两个派生自它的类,VariableExpression.我有一些方法可以解决vector<ResultBase>.我希望能够在载体传递VariableExpression进入这些方法.我可以通过创建一个vector<ResultBase>并使用static_cast它来填充我的Variable/Expression向量中的成员来实现这一点.但是,一旦向量运行了这些方法,我希望能够将它作为Result/Expression的向量返回.我肯定知道我要回哪一个.static_cast在这里不起作用,因为没有从a重构变量/表达式的方法ResultBase,更重要的是我没有变量/表达式的原始属性

这些方法修改了一些属性,ResultBase我需要将这些更改反映在原始向量中.(即ResultBase有一个名为的属性IsLive,其中一个方法将修改此属性.我希望此IsLive值反映在用于创建该属性的派生类中ResultBase

什么是最简单的方法来实现这一目标?

c++ casting

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