小编bpe*_*kes的帖子

当使用W2A将BSTR转换为std::string时,是否需要进行任何清理?

代码如下所示:

class A 
{
  public:
     std::string name;
};

A a;
CComBSTR textValue;
// some function which fills textValue
a.name = W2A(textValue);
Run Code Online (Sandbox Code Playgroud)

现在,我已经使用了 CComBSTR,因此我不必释放 BString,但是 W2A 是否分配我可能需要处理的任何内存?即我应该有:

 char *tmp = W2A(textValue);
 a.name = tmp;
 // do something to deallocate tmp?
Run Code Online (Sandbox Code Playgroud)

c++ com bstr

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

MySQL SHA2 功能似乎不起作用

我正在使用 MySql 5.5.32 并尝试在业务层中的存储过程中重现一些代码,以便我可以为使用sql. 虽然 SHA2 函数似乎有问题,但也许我遗漏了一些东西:

SELECT length(SHA2("bob", 512))
Run Code Online (Sandbox Code Playgroud)

返回128,不应该是64吗?

SELECT length(SHA2("bob", 256))
Run Code Online (Sandbox Code Playgroud)

它返回 64,所以看起来要么是我遗漏了什么,要么是 SHA2 中存在错误。有任何想法吗?

mysql sha2

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

CStatic问题的背景颜色

我在使用WTL设置CStatic的背景颜色时遇到问题(我猜我的MFC也有同样的问题)

我有一个黑色背景的窗口,它有一个源自CStatic的控件.我正在通过WM_CTLCOLORSTATIC消息设置颜色.我基本上工作,但控件中有文字的部分显示为白色.

这是回调中的代码:

LRESULT CReportResults::OnCtrColorStatic(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
    if ((HWND)lParam == m_wndLoadingLabel.m_hWnd)
    {
        HDC     hDC = (HDC)wParam;

        SetBkColor(hDC, APP_COLOR_BACKGROUND);
        SetTextColor(hDC, APP_COLOR_TEXT);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这就是它最终在屏幕上看起来的样子.控件本身比它中的文本大,但我不知道如何让其余的控件用黑色背景绘制.看起来将背景颜色设置为黑色只会影响文本显示的区域.关于我可能做错的任何想法?

这就是它的样子

c++ winapi mfc wtl

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

mysql如何反向解析IP地址?

我们重启了一台运行mysql的机器,我们遇到了一些奇怪的问题.来自其他机器的大多数进程都可以毫无问题地连接到它们.如果我们明确地通过环回地址连接,我们也可以在本地连接.

这有效:

mysql -hlocalhost -utest_user -psecret_password
Run Code Online (Sandbox Code Playgroud)

当我们运行命令时:

mysql -h192.168.1.10 -utest_user -psecret_password
Run Code Online (Sandbox Code Playgroud)

在本地机器上我们收到以下错误:

ERROR 1045 (28000): Access denied for user `test_user`@`SERVER_123`
Run Code Online (Sandbox Code Playgroud)

我们有以下用户:

test_user@localhost
test_user@%
Run Code Online (Sandbox Code Playgroud)

我们通过添加以下用户修复了此问题:

test_user@SERVER_123
Run Code Online (Sandbox Code Playgroud)

其中SERVER_123是机器的非限定名称.我们不知道为什么我们必须添加额外的用户,我们不想保留它,但我们也不知道为什么添加它修复了问题.

为什么通过IP从本地计算机连接(即mysql -ha.bcd -utest_user -ppsswd)无法与test_user@%用户匹配,但是匹配test_user@machine_name,其中machine_name是机器的非限定名称?

这是用户表

anonymous    %
anonymous    SERVER_123
anonymous    localhost
test_user_2  %
test_user_3  %
root         ::1
root         127.0.0.1
root         SERVER_123
root         localhost

注意:找出问题所在.以某种方式重启机器必须改变192.168.1.10如何解决,以便它解析为SERVER_123.然后导致登录从192.168.1.10匹配test_user@ SERVER_123.

mysql

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

是否可以覆盖特定父级的虚函数?

假设您有以下类层次结构:

class A
{
   public:
   virtual void foo() {}
}

class B
{
   public:
   virtual void foo() {}
}

class C: public A, public B
{
    public:
    virtual void foo() override {  } // This overrides both
}

class D: public A, public B
{
    public:
    // Is there syntax so that there is a separate override for each?
    // Maybe something like:
    // virtual void A::foo() override {}
    // virtual void B::foo() override {}
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在D类上有两个foo函数,这样如果D作为对A的引用传递,则调用D中的一个函数,如果D作为对B的引用传递,则D中的不同函数是叫什么名字?

用例是如果你从两个外部库继承,它们碰巧有重叠的函数说明符?

c++ overriding virtual-functions multiple-inheritance

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

是否可以在.Net中将整数枚举设置为任意值

出于某种原因HttpResponseMessageProperty,我用于将特定HTTP响应代码返回给客户端使用HttpStatusCode枚举.此枚举不包括422,它不包含在枚举中.是否有任何方法可以使用整数设置枚举,因为这是它的内涵?

c# wcf enums

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

Swagger 文件是否有替代 UI

我们目前正在Postman用于构建和测试我们的 REST 端点。在分享收藏时,他们的产品存在一些严重的缺陷。基本上你不能对文档使用源代码控制,因为它会在你导入时更改 json 文件中的所有 guid。

所以我们正在考虑可能切换到Swagger,Swagger 的问题是这SwaggerUI对用户不是很友好。我们喜欢 Postman 使您能够将您的收藏分解为文件夹,并为您提供一个分屏,您可以在其中运行请求并查看输出。

是否有任何第三方工具可以PostmanSwagger文件提供样式界面?即很容易找到一组资源的方法,并调用它。

rest swagger-ui postman

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

C#中受保护的静态字符串可访问性问题

我有一个模板化的抽象基类.

public abstract class Base<T> where T : new()
{
     protected static string MAGIC;
}
Run Code Online (Sandbox Code Playgroud)

然后,我有两个类派生Base,但具有不同的值T.

public class Derived1:Base<Other1> {}

public class Derived2:Base<Other2> {}
Run Code Online (Sandbox Code Playgroud)

似乎发生了两件奇怪的事情.首先,Derived2.MAGIC可以从一个成员函数中获得Derived1; 我不指望那样.另外,Derived2有一个静态构造函数设置MAGIC; 奇怪的是,访问Derived2时不会调用静态构造函数(甚至不应该允许).Derived1Derived2.MAGIC

两个问题:

  • 为什么可以Derived1访问受保护的静态成员Derived2

  • 我认为静态构造函数在访问任何静态成员之前运行,为什么当我访问时Derived2.MAGIC,我没有看到它的静态构造函数被调用?

这两个似乎都是严重的错误.

只是添加一个注释,如果MAGIC另一方面是一个静态保护功能,这个问题就不存在了,这使得整个事情更加不清楚.

c# generics

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

无法更改表,获取错误1067无效的默认值

我将一个mysql数据库从运行在linux上的mysql服务器恢复到一个运行在windows上的服务器.在我试图在其中一个表上运行ALTER TABLE之前,一切似乎都很好.如果我尝试更改任何内容,我得到的错误是:错误代码:1067.'creation_date'的默认值无效

现在奇怪的是,转储文件成功恢复并创建了表.如果我使用Workbench获取表的create语句,我看到:

`creation_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
Run Code Online (Sandbox Code Playgroud)

对于导致问题的列.

CREATE TABLE语句如何以这样的方式成功,我现在无法对其进行更改?

mysql datetime default

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

将null传递给C#中的函数时消除歧义

我有两个功能,它们的第二个参数不同.例:

public IEnumerable<Thing> Get(string clause, List<Things> list)
{
}

public IEnumerable<Thing> Get(string clause, List<OtherThing> list)
{
}
Run Code Online (Sandbox Code Playgroud)

我想调用此函数的第一个实例,但我想传递null作为第二个参数.有没有办法指定null的"类型"?

c#

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