小编Ste*_*eve的帖子

Header Guards和LNK4006

我在标题中定义了一个字符数组

//header.h
const char* temp[] = {"JeffSter"};
Run Code Online (Sandbox Code Playgroud)

如果#defined受到保护,则标题在顶部有一次#pragma.如果这个头包含在多个地方,我得到一个LNK4006 - 已经在blahblah.obj中定义的char const**temp.所以,我有几个问题

  1. 如果我有防护装置,为什么会发生这种情况?我认为他们阻止了首次访问后读取标头.
  2. 为什么此标题中的众多枚举还没有给出LNK4006警告?
  3. 如果我在签名前添加静态,我不会收到警告.这样做有什么意义呢.
  4. 有没有更好的方法来避免错误,但让我在标题中声明数组.我真的很讨厌只有一个cpp文件用于数组定义.

c++ linker-warning

10
推荐指数
3
解决办法
5808
查看次数

防止"向Microsoft发送错误报告"

我正在做一个相当大的项目,它不太可能抓住一切.我发现事件通知我未处理的异常,但我还没有找到一种方法以编程方式关闭Windows错误对话框.理想情况下,如果存在未处理的异常,我希望触发该事件,提供一个对话框告诉用户存在问题,然后优雅地关闭.有没有办法做到这一点?我意识到我可以在try catch中包裹最高层,但我希望能有更优雅的东西.

c# error-handling

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

C#清理C++分配的内存吗?

我有一个带有以下签名的假设COM对象

void MemAlloc(ref double[] test, int membercount)
Run Code Online (Sandbox Code Playgroud)

使用new/malloc在C++中分配内存的地方.一旦这是在C#中,使用RCW,我如何确保正确释放内存?我认为.NET很难释放,考虑到在C++中你需要知道它是否已经分配了new/malloc/mm_malloc才能正确释放它.那么,清理我的C++分配数组的合适方法是什么?谢谢.

c# c++ com interop

9
推荐指数
2
解决办法
5728
查看次数

当c ++ xx被批准时,命名空间tr1会发生什么?

我正在使用VS2008中的tr1命名空间编写一些东西.当C++ xx被批准时会发生什么?这是否发生在其他C++版本之前?tr1的东西仍然可以使用,还是我必须更改我的所有内容?我意识到我正在做出一个非常大的假设,即批准将在某一天发生.我知道你很可能没有人为MS工作或为GCC做贡献,但如果你有这些改变的经验,我将不胜感激.

c++ tr1

9
推荐指数
2
解决办法
1295
查看次数

进程被终止时,C#清理非托管资源

我有一个类来实例化一个COM exe进程.这堂课是

public class MyComObject:IDisposable
{
    private bool disposed = false;
    MyMath test;

    public MyComObject()
    {
        test = new MyMath();
    }

    ~MyComObject()
    {
        Dispose(false);
    }

    public double GetRandomID()
    {
        if (test != null)
            return test.RandomID();
        else
            return -1;
    }

    public void Dispose()
    {
        Dispose(true);

        GC.SuppressFinalize(this);
    }

    private void Dispose(bool disposing)
    {
       if (test != null)
       {
           Marshal.ReleaseComObject(test);
           test = null;
       }

       disposed = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我把它称之为如下

static void Main(string[] args)
    {
        MyComObject test = new MyComObject();
        MyComObject test2 = …
Run Code Online (Sandbox Code Playgroud)

c# dispose

8
推荐指数
2
解决办法
5459
查看次数

反射器时代的C#加密

我有一个程序,其中数据库的密码由远程用户设置.程序将用户名和密码保存到xml文件中的加密字符串中,否则应该是人类可读的.现在,这很好用,我使用C#DES加密密钥,并加密和解密.现在,问题是任何人都可以使用反射器来查看密钥.即使有混淆,关键也应该很明显.那么,如何解决这个问题呢?现在,我不需要这个NSA安全,但我真的想防止任何人偷看.谢谢.

编辑:感谢您到目前为止的所有建议,有关此类事情的信息并不十分普遍,我非常感谢一般提示以及具体答案.

c# encryption reflector

8
推荐指数
2
解决办法
1809
查看次数

用新的回归对齐的记忆?

我目前使用MS特定的mm_malloc为阵列分配内存.我调整了内存,因为我正在做一些重型数学运算,矢量化利用了对齐.我想知道是否有人知道如何重载新操作符来做同样的事情,因为我觉得到处都是脏的malloc'ing(最终还想在Linux上编译)?谢谢你的帮助

c++ alignment

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

如何确定执行程序是否为64位编译?

我需要我的程序来确定它是为32位窗口还是64位/任何CPU编译的.我需要根据编译选项选择不同的COM服务器标志.有任何想法吗?

c# 64-bit

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

C#中的语言决定会让你烦恼吗?

我只是处理字符串,我发现自己很恼火,字符串可以为空.所以,我必须拥有

if((teststring??string.Empty)==string.Empty)
Run Code Online (Sandbox Code Playgroud)

到处都是.会串吗?在需要它的相对较少的情况下(dbs,白痴用户输入等)允许可空性是如此困难.在我想要某种形式的const正确性的情况下,我也发现自己不得不导出只读接口.那么,C#语言构建/决定会让你烦恼么?

编辑:感谢isnullorempty功能,我以前没见过!仍然不会减轻我可以为空的烦恼:D

c#

7
推荐指数
4
解决办法
932
查看次数

如何追踪COM内存泄漏

我正在尝试追踪COM对象中的内存泄漏,而我没有看到任何明显错误的内容.我可能错误地使用了一些COM包装器,但是我找到内存泄漏的标准工具包(AQtime)并没有帮助我使用COM.有没有人有任何技巧/工具来追踪COM内存/参考泄漏?

c++ com memory-leaks

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