小编Vio*_*ffe的帖子

10
推荐指数
2
解决办法
8679
查看次数

是否有Windows API以编程方式通过Windows资源管理器剪切/复制/粘贴文件?

我知道SHFileOperation可用于使用Windows资源管理器执行文件操作,但它只执行源和目标都已知的完整文件操作.

是否有API允许应用程序在Windows资源管理器中从应用程序中剪切,复制或粘贴?

回答几个问题:

  • 使用Windows资源管理器执行文件/文件夹操作将大大简化移动多个对象.这对于移动文件夹及其内容尤其重要,因为MoveFile不支持将文件夹移动到不同的卷.

  • 使用Windows资源管理器执行文件/文件夹操作将允许将操作添加到Windows资源管理器的撤消缓冲区,以便可以撤消它们,否则无法撤消使用控制台应用程序/命令提示符执行的操作.

我确信我已经看到以编程方式执行Windows资源管理器动词,但我似乎无法找到这样做的方法.

windows clipboard file-io windows-explorer

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

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

可以使用什么预定义宏来检测使用clang的调试版本?

MSVC _DEBUG在调试模式下定义,gcc NDEBUG在发布模式下定义.我可以在clang中使用什么宏来检测代码是否正在编译以进行发布或调试?

c++ debugging clang

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

GestureDetector.SimpleOnGestureListener和GestureDetectorCompat不起作用.我的代码出了什么问题?

我正在关注检测常见手势指南.我已链接到android-support-v4.jar库以获取GestureDetectorCompat,我的代码与指南中的代码完全相同,除了我在自定义视图中检测手势而不是在活动中:

public class MyGlView extends GLSurfaceView {

    private GestureDetectorCompat m_gestureDetector = null;

    public MyGlView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }
    public MyGlView(Context context) {
        super(context);
        init(context);
    }
    private void init(Context context) {
        if (m_gestureDetector == null)
            m_gestureDetector = new GestureDetectorCompat(context, new MyGestureListener());

        setEGLContextClientVersion(2);
        setRenderer(new DrawSurfRenderer());
        setRenderMode(RENDERMODE_CONTINUOUSLY); 
    }

@Override
    public boolean onTouchEvent(MotionEvent event) {

        m_gestureDetector.onTouchEvent(event);      
        return super.onTouchEvent(event);
    }

public class MyGestureListener extends GestureDetector.SimpleOnGestureListener {

        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, …
Run Code Online (Sandbox Code Playgroud)

android gesture-recognition gestures

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

是否有任何使用emplace_back替换push_back不正确的情况?

中途我可以通过更换一个有效的C++程序03 std::vector::push_backemplace_back与C++编译器11编译呢?从阅读emplace_back参考我收集它不应该发生,但我承认我没有完全得到右值参考.

c++ vector c++11 c++03

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

Qt .pro文件:如何检查我是否正在使用MSVC 2013工具集进行编译?

我已经尝试过这种情况,但它不起作用.如何查看MSVC 2013?

win32-msvc2013*{
    QMAKE_CXXFLAGS += /FS
}
Run Code Online (Sandbox Code Playgroud)

我正在使用具有msvc-2013mkspec的Qt 5.3 Beta .

qt qmake

9
推荐指数
3
解决办法
6101
查看次数

将向量元素移动到向量的后面

有没有更好的方法(更快或代码更少的符号)比擦除元素并重新添加到后面?

template <typename T>
void moveItemToBack(std::vector<T>& v, size_t itemIndex)
{
   T tmp(v[itemIndex]);
   v.erase(v.begin() + itemIndex);
   v.push_back(tmp);
}
Run Code Online (Sandbox Code Playgroud)

c++ vector stdvector

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

Lambda捕获列表:在不捕获整个对象的情况下,按值捕获对象的成员字段是不可能的?

以下代码

void CMainWindow::someMethod(const CLocationsCollection& parentItem)
{
    auto f = [this, parentItem.displayName](){};
}
Run Code Online (Sandbox Code Playgroud)

给我一个错误:

错误C2143:语法错误:'.'之前缺少']'

如果我想parentItem.displayName通过ref 捕获,我会为它创建一个非依赖别名标识符:

const QString& name = parentItem.displayName;
auto f = [this, &name](){}; // Or should it be [this, name] ?
Run Code Online (Sandbox Code Playgroud)

但是我需要通过价值来捕捉它,我不想捕捉整体,parentItem因为它很重.有解决方案吗

PS捕获列表中的名称必须是标识符.parentItem.displayName(作为一个整体)不是一个标识符?为什么编译器无法正确解析?

c++ lambda language-lawyer c++11

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

将std :: vector作为模板模板参数传递时出错 - 在GCC中工作,在MSVC中失败

以下代码

#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <deque>
#include <functional>

#define BEGIN_TO_END(container) container.begin(), container.end()

template <template<typename...> class OutputContainerType, class InContainer>
OutputContainerType<typename InContainer::value_type> convertContainer(const InContainer& in)
{
    OutputContainerType<typename InContainer::value_type> result;
    std::transform(BEGIN_TO_END(in), std::back_inserter(result), [](typename InContainer::value_type value) {return value;});
    return result;
}

int main() {
    std::deque<int> d {1, 2, 3};
    const auto v = convertContainer<std::vector>(d);
    std::cout << v.size() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

适用于GCC(链接).但是,它不能与MSVC 2013(12.0)一起编译并出现错误:( 'std::vector' : class has no constructors可在此处测试,选择12.0编译器版本).这有什么问题,我该如何解决?

c++ templates

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