任何人都可以推荐一个体面的SFTP库用于Windows C++应用程序?如果一个跨平台的可用,那就更好了,但这不是必需的.它适用于商业应用程序,因此付费不是问题.
我使用的是极好的Ultimate TCP/IP库,它支持FTP-S但不支持SFTP(是的,我知道,令人困惑的不是它!).
我遇到了Chilkat图书馆,看起来非常好,但想知道是否有其他人使用过.
使用ATL(VS2008)如何枚举给定IDispatch接口(IDispatch*)上可用的可用方法?我需要搜索一个具有特定名称的方法,一旦我有了DISPID,就调用该方法(我知道方法所采用的参数.)理想情况下,我想使用智能COM指针(CComPtr<>).
这可能吗?
我正在重构一些充满ASSERT语句的MFC代码,为了准备未来的Linux端口,我想用标准替换它们assert.人们知道的两种实现之间是否有任何重大差异可能会让我感到困惑?
同样,我也遇到了一些ATLASSERT我想要替换的代码.
我有两个要合并的STL容器,删除多次出现的元素.例如:
typedef std::list<int> container;
container c1;
container c2;
c1.push_back(1);
c1.push_back(2);
c1.push_back(3);
c2.push_back(2);
c2.push_back(3);
c2.push_back(4);
container c3 = unique_merge(c1, c2);
// c3 now contains the following 4 elements:
// 1, 2, 3, 4
Run Code Online (Sandbox Code Playgroud)
std :: unique似乎只适用于相邻元素,在我的情况下,容器可以是任何顺序.我猜我可以做一些std :: set trickery:
container unique_merge(const container& c1, const container& c2)
{
std::set<container::value_type> s;
BOOST_FOREACH(const container::value_type& val, c1)
s.insert(val);
BOOST_FOREACH(const container::value_type& val, c2)
s.insert(val);
return container(s.begin(), s.end());
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法或者我错过了明显出血的东西?
我正在使用ATL在C++中编写COM对象,我不确定是否应该使用VARIANT_BOOL我的方法/属性.该对象将被其他C++应用程序调用,但我不能排除.NET的使用.
我可以坚持好旧BOOL(IIRC只是一个无符号的int)但是那样VARIANT_BOOL,我不应该使用它吗?如果我使用它,并从C++应用程序调用这些方法,我必须添加额外的代码,因为VARIANT_BOOL它不像'普通'布尔值,我必须检查VARIANT_TRUE和VARIANT_FALSE值.
是VARIANT_BOOL不合时宜的,我可以忘记,还是应该坚持下去?
在Windows下获取屏幕的DPI(使用:: GetDeviceCaps)时,水平值是否始终与垂直相同?例如:
HDC dc = ::GetDC(NULL);
const int xDPI = ::GetDeviceCaps(dc, LOGPIXELSX);
const int yDPI - ::GetDeviceCaps(dc, LOGPIXELSY);
assert(xDPI == yDPI);
::ReleaseDC(NULL, dc);
Run Code Online (Sandbox Code Playgroud)
这些价值观是否有所不同?
我刚刚遇到一个Visual C++选项,它允许你强制包含文件 - 这是在我查看#include "StdAfx.h"每个.cpp文件中缺少一些代码的时候出现的,但实际上是通过这个选项实现的.
该选项可在Advanced C/C++ Configuration Properties页面上找到,并等同于/ FI编译器选项.
这个选项可能证明非常有用,但在我匆忙开始使用它之前,我想我会问是否有任何问题?
在我的课程中,我经常operator!=通过返回写一个快速!(*this == rhs),例如:
class Foo
{
private:
int n_;
std::string str_;
public:
...
bool operator==(const Foo& rhs) const
{
return n_ == rhs.n_ && str_ == rhs.str_;
}
bool operator!=(const Foo& rhs) const
{
return !(*this == rhs);
}
};
Run Code Online (Sandbox Code Playgroud)
这样做我看不出任何明显的问题,但我想我会问是否有人知道.
我有一个使用标准套接字调用的C++应用程序,我想知道是否可以判断套接字是否仍然打开而不发送或接收任何数据.我能做出可靠select或ioctlsocket致电吗?
我QDialog使用Qt Creator 创建了一个基于应用程序,除了对话框没有最小化按钮之外,一切都很好.我该如何添加一个?我可以在设计师中设置一个属性吗?