小编Aze*_*eem的帖子

Visual Studio 2008搜索并替换正则表达式

我有一个很大的解决方案,需要更换很多行.在Visual Studio中,您可以使用正则表达式进行搜索和替换.

我想替换以下行:

rst.Fields("CustomerName").Value
rst.Fields("Address").Value
rst.Fields("Invoice").Value
Run Code Online (Sandbox Code Playgroud)

至:

row("CustomerName").ToString()
row("Address").ToString()
row("Invoice").ToString()
Run Code Online (Sandbox Code Playgroud)

从而保持动态文本部分,这可以变化.

这可能吗?怎么样?

更新,解决方案:
搜索:rst.Fields{\(.*\)}\.Value
替换:rst\1.ToString()

谢谢JaredPar!

regex replace visual-studio-2008 visual-studio

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

识别处理器(核心)由特定线程使用

我想知道是否有可能识别具体的线程使用的物理处理器(核心)thread-id

例如,我有一个具有两(2)的螺纹(多线程应用程序thread-id = 10thread-id = 20,例如).我在具有双核处理器(核心1和核心2)的系统上运行该应用程序.那么,我如何获得线程使用的核心号码thread-id = 20呢?

PS Windows平台.

谢谢,

丹尼斯.

windows multithreading processor affinity

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

SetConsoleMode() 和 ENABLE_VIRTUAL_TERMINAL_PROCESSING?

根据 MSDN,该函数的dwMode参数SetConsoleMode()应该允许ENABLE_VIRTUAL_TERMINAL_PROCESSING(0x04)。

我的 Visual Studio(2013 Ultimate with Update 5)没有定义这个常量。它只有这两个:

#define ENABLE_PROCESSED_OUTPUT    0x0001
#define ENABLE_WRAP_AT_EOL_OUTPUT  0x0002
Run Code Online (Sandbox Code Playgroud)

ENABLE_VIRTUAL_TERMINAL_PROCESSING移除了吗?

我试图像这样使用它,以便我可以使用 VT100 转义序列控制光标。

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD dwMode = 0;
GetConsoleMode(hOut, &dwMode);
dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
SetConsoleMode(hOut, dwMode);
Run Code Online (Sandbox Code Playgroud)

如需参考,请参阅此 MSDN文章

c c++ windows console

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

如何遍历QStringList

我正在尝试遍历两个不同的目录.这两个目录位于同一个根目录下/.

void MainWindow::loadPlugins()
{
    pluginsDir = QDir(qApp -> applicationDirPath());

#if defined(Q_OS_WIN)
    if (pluginsDir.dirName().toLower() == "debug" || pluginsDir.dirName().toLower() == "release")
        pluginsDir.cdUp();
#elif defined(Q_OS_MAC)
    if (pluginsDir.dirName() == "MacOS") {
        pluginsDir.cdUp();
        pluginsDir.cdUp();
        pluginsDir.cdUp();
    }
#endif

    QStringList dirs;
    dirs << "plugins" << "core_plugs";

    QList<QObject *> loadedPlugs;

    for (int i = 0; i < dirs.size(); ++i)
    {
        cout << dirs.at(i).toLocal8Bit().constData() << endl;

        pluginsDir.cd(dirs.at(i).toLocal8Bit().constData());

        foreach (QString fileName, pluginsDir.entryList(QDir::Files)) {
            QPluginLoader loader(pluginsDir.absoluteFilePath(fileName));
            QObject *plugin = loader.instance();
            qDebug() << "NAME :: " << fileName;
            if (plugin …
Run Code Online (Sandbox Code Playgroud)

c++ iteration qstring qt qlist

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

c中的系统功能对我不起作用

我正在使用此代码提取受密码保护的RAR文件.我正在使用该std::system()函数来调用RAR命令.如果我passwordstd::system()函数中使用它,它的工作原理.但是,当尝试将密码作为参数传递时,它不会.例如,如果在此代码中,如果我使用密码pwd,则会出现此错误:

"pwd不被识别为内部或外部命令,可操作程序或批处理文件."

但是,如果我更改代码并使其成功system("rar e -ppwd wingen.rar"),它就可以工作.

任何人都可以解释我犯的错误吗?提前致谢!

这是我的代码:

#include<stdio.h>
#include<stdlib.h>
int main(int argc, char **argv)
{
    char pword[20];
    printf("enter the pword : ");
    gets(pword);
    system(("rar e -p%s wingen.rar",pword));
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c

5
推荐指数
3
解决办法
4250
查看次数

Qt覆盖小部件快捷键(窗口快捷方式)

我有一个Qt应用程序,在Qt Designer表单操作中定义了几个窗口快捷方式.快捷方式很有效,直到它们被按下,同时焦点位于处理相同组合的小部件上(覆盖我的窗口快捷方式).

我想有相反的行为:窗口快捷方式覆盖聚焦小部件快捷方式.

我尝试使用eventFilter,我可以捕获所需的事件,但我无法以调用全局快捷方式的方式重新发送它们.我可以使用一个大开关并自己调用这些动作,但当然,我想避免这种情况.

我曾经postEventsendEvent内部eventFilter使用MainWindow的接收器,但该事件被忽略:

bool MainWindow::eventFilter(QObject*, QEvent* event) {
    if (event->type() == QEvent::KeyPress) {
        QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
        if (keyEvent->key() == Qt::Key_Z
            && keyEvent->modifiers() == Qt::ControlModifier) {
            //Calling the triggers directly works
            ui->actionUndo->trigger();
            return true;
        } else if (keyEvent->modifiers().testFlag(
                       Qt::KeypadModifier)) {
            QKeyEvent* ev2
                = new QKeyEvent(keyEvent->type(), keyEvent->key(), 0);
            qDebug() << keyEvent << ev2;
            //This sendEvent doesn't work
            QApplication::sendEvent(ui->widget, ev2);
            event->accept();
            return true;
        } else {
            return false;
        }
    } …
Run Code Online (Sandbox Code Playgroud)

qt

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

C++ 线程中的 Valgrind 错误

我是 Valgrind 的新手。在对以下代码 ( http://en.cppreference.com/w/cpp/thread/lock_guard )进行内存检查期间,它会引发 2 个错误。不知道如何解释这些错误。

#include <thread>
#include <mutex>
#include <iostream>

int g_i = 0;
std::mutex g_i_mutex;  // protects g_i

void safe_increment()
{
    std::lock_guard<std::mutex> lock(g_i_mutex);
    ++g_i;
    std::cout << std::this_thread::get_id() << ": " << g_i << '\n';
}

int main()
{
    std::cout << __func__ << ": " << g_i << '\n';
    std::thread t1(safe_increment);
    std::thread t2(safe_increment);
    t1.join();
    t2.join();
   std::cout << __func__ << ": " << g_i << '\n';
}
Run Code Online (Sandbox Code Playgroud)

我使用以下命令在 Mac 上编译了这段代码:

clang++ simplethread.cpp -o simplethread -lpthread -std=c++11
Run Code Online (Sandbox Code Playgroud)

代码按预期运行,但我从 …

multithreading valgrind c++11

5
推荐指数
0
解决办法
924
查看次数

条件编译和模板

假设,我有一个代码:

template <typename T>
class C {
public:
    T f() { return m_result; }
    void todo() { m_result = doit<T>(); }
private:
    T m_result;
};
Run Code Online (Sandbox Code Playgroud)

如果Tvoid,我想回来void,一点也不m_result.
但是,编译器不允许实例化void类型.
其中一个决定是创建专业化.

template <> class C<void> { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

但我不支持几乎完全相同的代码.
我怎么不实例化m_result
我可以使用C++ 17.谢谢!

c++ templates

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

如何检测故障并重置/重启 webassembly 模块?

我正在尝试使用 WebSssembly 在浏览器上运行一些 C++ 函数。我正在关注本教程。我想知道:

  1. 如何检测(在 JS 端)来自 C++ 代码的“未捕获异常”?
  2. 如何以emcc一种避免内存泄漏的方式重置/重新启动由生成的 WebAssembly 模块?

添加异常捕获功能 ( DISABLE_EXCEPTION_CATCHING=0) 似乎会过多地增加文件大小。

任何帮助将不胜感激。


示例 C++ 代码如下:

// C++ source code (fib.cc)

#include <stdexcept>
#include <emscripten.h>

extern "C" {

EMSCRIPTEN_KEEPALIVE
int fib(int n) {
  if (n > 12) {
    throw std::out_of_range("input out of range");
  }
  int i, t, a = 0, b = 1;
  for (i = 0; i < n; i++) {
    t = a + b;
    a = b; …
Run Code Online (Sandbox Code Playgroud)

javascript c++ webassembly

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

具有默认值的 Github Action 布尔输入

我正在为市场开发 GitHub Action。它有各种带有默认值的输入。这些输入之一恰好是boolean我用来切换调试状态的输入。

这是我的布尔输入定义:

inputs:
  debug_mode:
    description: "Controls the debug mode, boolean, true is for on. When turned on, it'll output certain information on certain steps. Mainly used for development, but use it as you please to inspect your env and variables."
    type: boolean
    required: false
    default: false
Run Code Online (Sandbox Code Playgroud)

boolean正如您所看到的,它具有带默认值的类型false。然后,在其中一个步骤中,我检查debug_mode以确定是否运行该步骤。但是,它没有按预期工作:

steps:
  - name: Dump debug_mode
    run: echo "debug_mode is ${{ inputs.debug_mode }}"
    shell: bash
  - name: Dump context
    if: ${{ inputs.debug_mode}}
    uses: crazy-max/ghaction-dump-context@v2
  - …
Run Code Online (Sandbox Code Playgroud)

continuous-integration yaml github-actions

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