小编9a3*_*edi的帖子

无法加载一个或多个项目,但VS却没有说明哪个项目

我有一个相当大的解决方案,包含多个子项目(主要是带有1或2个C++项目的C#),每个子项目都在自己的文件夹中.我重命名了文件夹和项目名称,然后使用此处描述的相同过程继续编辑解决方案文件:在Visual Studio中重命名解决方案(和目录)的正确方法

执行此操作后,我想测试一切是否正确,以便我打开解决方案文件.VS2008抱怨:

由于以下原因,无法加载解决方案中的一个或多个项目:

项目文件或Web已被移动,重命名或不在您的计算机上.

这些项目将在解决方案资源管理器中标记为不可用 展开项目节点以显示无法加载项目的原因.

所以我试着像粗体文字那样做.但是,解决方案资源管理器中没有任何不可用的项目.所有子项目都在那里,我没有看到任何警告或错误或缺少参考或任何东西.该解决方案也可以很好地编译,我也可以运行应用程序.

问题是当我打开解决方案时错误不断弹出,我试图阻止它这样做,因为它最终会进入源代码控制.

有没有人遇到过这个?有什么我可能会错过的吗?

c# refactoring solution csproj visual-studio-2008

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

将大型向量存储在堆栈中是一个坏主意吗?

我一直在研究一堆图像处理程序......没什么特别的,大多是快速和肮脏的实验.图像数据存储在堆栈中声明的向量中(当我不需要传递数据时,我尽量避免使用指针).我注意到,尽管进行了无数的调试和步进,我的一些功能仍然表现得非常奇怪.有时调试器会给我一个错误,它无法评估某个变量等等.事情通常没有意义,过去的经验告诉我,当这发生时,这意味着存在某种溢出或内存损坏.首先想到的是,这可能是由于我将大量图像数据存储到矢量中.

但是,我的印象是向量将它们的实际数据存储在堆中,所以我认为在堆栈中有一些这样的大向量不会有什么坏处.这是错误的吗?我应该分配我的向量并将它们存储在堆而不是堆栈中吗?

谢谢,

c++ heap stack vector stack-corruption

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

评估在另一个单元格中定义的公式

说我在小区有一个函数的名称A1,如SUM,在某些数据B1C1.有没有办法在一个单元格中定义一个公式,以便它调用在其中定义的公式A1并将其作为数据B1C1作为数据?

因此,像:
=A1(B1:C1)应该等于=SUM(B1:C1)A1包含单词SUM在里面.

基本上,像C中的预处理器宏或函数指针可能.

excel xlm

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

初始化具有显式大小的char数组并初始化为大于该大小

我一直在阅读一些代码,我遇到了以下内容:

int function(){
    char str[4] = "ABC\0";
    int number;

    /* .... */
}
Run Code Online (Sandbox Code Playgroud)

通常,当你编写一个字符串文字来初始化一个char数组时,该字符串应该是null隐式终止对吗?在这种情况下会发生什么?编译器是否识别字符串文字中的'\ 0'并使其成为空终止符?还是溢出到int数?这个表格有什么问题吗?

c string initialization c-strings

3
推荐指数
2
解决办法
5809
查看次数

在分配它的if-else语句中使用未分配的局部变量

我有以下代码将一些字符串解析为双精度

double number;
double exponent;
if(!double.TryParse(line1, out number) &&
   !double.TryParse(line2, out exponent))
   throw new ArgumentException("Invalid string");
else
   number *= 10.0 * exponent;
Run Code Online (Sandbox Code Playgroud)

我收到编译器的错误,exponent当它没有被分配时使用它(使用未分配的局部变量'exponent').但是,number即使它以相同的方式处理,我也不会得到变量的错误.另外,&&outif语句中调用的函数中的说明符相结合几乎应该保证在到达else块时分配数字和指数.

以下代码编译.

double number;
double exponent;
if(!double.TryParse(line1, out number))
    throw new ArgumentException("Invalid string");
else{
    if(!double.TryParse(line2, out exponent)){
        throw new ArgumentException("Invalid string");
    }else{
        number *= 10.0 * exponent;
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?在第一个代码示例中,并不是两个变量都保证在执行else语句时分配?两个代码示例在逻辑上是否等效?这是编译器的限制吗?实际上,我很惊讶编译器是否足够聪明,首先在底部代码示例中识别这种情况.

c# parsing compiler-errors

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

通过硬编码地址创建指向结构的指针数组时避免gcc警告

假设我有一个充当寄存器映射的结构.

typedef struct{
    int reg1;
    int reg2;
} regs;
Run Code Online (Sandbox Code Playgroud)

我的寄存器有一些常量地址

# define ADDR1 0x60000000
# define ADDR2 0x70000000
# define ADDR3 0x80000000
# define ADDR4 0x90000000
Run Code Online (Sandbox Code Playgroud)

为了让事情更容易循环,我想把它们放在一个数组中

regs * reg_list[4] = { ADDR1, ADDR2, ADDR3, ADDR4 };
Run Code Online (Sandbox Code Playgroud)

当我用gcc和-wAll编译它时,我得到了数组中每个元素的以下警告.我正试图摆脱这个警告.

warning: initialization makes pointer from integer without a cast
Run Code Online (Sandbox Code Playgroud)

我可以将每个单独的地址输入到reg*但这看起来非常冗长.有没有更好的办法?

c arrays embedded pointers gcc-warning

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