小编NTD*_*DLS的帖子

将32位C++代码移植到64位 - 值得吗?为什么?

我知道x64架构的一些显而易见的好处(更高的可寻址RAM地址等)......但是:

  • 如果我的程序没有真正需要在本机64位模式下运行怎么办?我应该移植它吗?
  • 是否有任何可预见的截止日期为32位支持?
  • 我的应用程序会像原生x64代码一样运行得更快/更好/更安全吗?

c++ 64-bit x86 x86-64 cpu-architecture

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

我应该将所有c ++代码包装在自己的命名空间中吗?

我来自ac #background,其中所有内容都有自己的命名空间,但这种做法在c ++世界中似乎并不常见.我应该将代码包装在自己的命名空间,未命名的命名空间或没有命名空间吗?

c# c++ namespaces

26
推荐指数
3
解决办法
4325
查看次数

MFC是否仍用于新开发(具有任何材料量)?

我从未成为MFC的忠实粉丝,但这不是重点.我读到微软将于2010年发布一个新版本的MFC,这真让我感到奇怪 - 我认为MFC已经死了(没有恶意,我真的这么做了).

MFC用于新开发吗?如果是这样,那么好处是什么?我无法想象它对诸如C#之类的东西有任何好处(或者甚至只是使用Win32 API的c ++).

lifecycle mfc frameworks visual-c++

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

将C++ TCP/IP应用程序从IPv4转换为IPv6.难?值得麻烦吗?

多年来,我使用WinSock(路由器,Web /邮件/ FTP服务器等等)为Windows开发了一小部分C++服务器/客户端应用程序.

我开始越来越多地考虑创建这些应用程序的IPv6版本(当然,同时保持原始的IPv4版本).

问题:

  1. 我可能遇到什么陷阱?
  2. 移植/转换难度很大吗?
  3. 转换是值得的吗?


为了参考(或为了好玩),您可以在我的应用程序的核心部分浏览IPv4代码的高峰.

c++ tcp winsock ipv4 ipv6

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

您应该将SQL存储过程存储在源代码管理中吗?

在开发具有大量存储过程的应用程序时,是否应将它们存储在某种源版本控制系统中(例如源安全,TFS,SVN)?如果是这样,为什么?使用SQL Server Management Studio是否有方便的前端方式?

sql sql-server version-control stored-procedures

12
推荐指数
3
解决办法
3705
查看次数

我为什么/不应该使用"new"运算符来实例化一个类,为什么?

我理解这可能被解释为"你的偏好是什么"问题之一,但我真的想知道为什么你会选择以下方法之一而不是另一种方法.

假设你有一个超级复杂的类,例如:


class CDoSomthing {

    public:
        CDoSomthing::CDoSomthing(char *sUserName, char *sPassword)
        {
            //Do somthing...
        }

        CDoSomthing::~CDoSomthing()
        {
            //Do somthing...
        }
};
Run Code Online (Sandbox Code Playgroud)

我应该如何在全局函数中声明本地实例?


int main(void)
{
    CDoSomthing *pDoSomthing = new CDoSomthing("UserName", "Password");

    //Do somthing...

    delete pDoSomthing;
}
Run Code Online (Sandbox Code Playgroud)

- 要么 -


int main(void)
{
    CDoSomthing DoSomthing("UserName", "Password");

    //Do somthing...

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ class instantiation

10
推荐指数
4
解决办法
2380
查看次数

如何检索COM类的接口ID,以便将其传递给CoCreateInstance?

我想以编程方式检索任何类的接口ID,以便将其传递给CoCreateInstance.很感谢任何形式的帮助!!

请参阅下面的"我如何获得此":

HRESULT hResult;
CLSID ClassID;
void *pInterface;

if(!(hResult = SUCCEEDED(CoInitialize(NULL))))
{
    return 1;
}

if(S_OK == CLSIDFromProgID(OLESTR("Scripting.FileSystemObject"), &ClassID))
{
    hResult = CoCreateInstance(ClassID, NULL, CLSCTX_INPROC_SERVER,
        <<How Do I Get This?>>, (LPVOID *)&pInterface);
}

CoUninitialize();
Run Code Online (Sandbox Code Playgroud)

编辑:感谢所有的帮助,现在似乎完美的工作!:

HRESULT hResult;
CLSID ClassID;
IClassFactory *pClf;
void *pVdb;

if(!(hResult = SUCCEEDED(CoInitialize(NULL))))
{
    return 1;
}

if(SUCCEEDED(CLSIDFromProgID(OLESTR("Scripting.FileSystemObject"), &ClassID))
{
    IDispatch *pDispatch;

    if(SUCCEEDED(CoCreateInstance(ClassID, NULL, CLSCTX_INPROC_SERVER,
            IID_IDispatch, (void **)&pDispatch))
    {
        OLECHAR *sMember = L"FileExists";

        DISPID idFileExists;

        if(SUCCEEDED(pDispatch->GetIDsOfNames(
                IID_NULL, &sMember, 1, LOCALE_SYSTEM_DEFAULT, &idFileExists))
        {
            unsigned int puArgErr = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ windows com

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

在主键/ Clusted索引中使用GUID

我非常精通SQL服务器性能,但我不得不争辩说GUID应该被用作Clusterd主键的默认类型.

假设该表每天的插入量相当少(5000 +/-行/天),我们会遇到什么样的性能问题?页面拆分将如何影响我们的搜索性能?我应该多久重新索引一次(或者我应该整理碎片)?我应该将填充因子设置为(100,90,80等)?

如果我每天插入1,000,000行怎么办?

我为所有问题道歉,但我希望得到一些备份,因为不使用GUID作为PK的默认值.然而,我完全愿意通过StackOverflow用户群的过度知识改变我的想法.

sql-server uniqueidentifier sql-server-performance

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

C++与C#中的静态变量有什么区别?

静态变量在C#中具有与在C++中相同或相似的功能吗?

编辑:

使用C++,您可以在许多不同的上下文中使用静态变量 - 例如:1)全局变量,2)本地函数变量,3)类成员 - C#中的类似用法是否与C++类似?

c# c++ variables instantiation

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

获取附加到 Windows Server 2019 的磁盘序列号

多年来,我一直在使用驱动器序列号将虚拟化来宾磁盘映射到管理程序磁盘。例如,VMWare ESXi 会将磁盘序列号设置为磁盘的 UUID - 允许轻松映射。

现在我已经运行了一些 Windows Server 2019 服务器,我注意到它们都没有通过以下 WMI 类返回磁盘序列号:Win32_DiskDrive, Win32_PhysicalMedia.

我已经浏览了我正在使用的 Windows 和 WMI 类的文档,但找不到任何关于它被弃用/删除的参考。

如何使用 .NET 在 Windows 2019 中获取磁盘(而不是卷)序列号?

.net wmi disk windows-server-2019

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