小编Tob*_*ner的帖子

如何在Delphi中使用由dll导出的C++类

有没有办法在Delphi中使用win32 dll导出的C++类for win32?还有其他方法可以实现类似的东西(COM,.NET,......)吗?

c++ delphi dll

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

关于连接的新手QT问题

我只是尝试设置一个小的QT示例,并且connect语句无法编译.来自编译器的错误消息是:"没有用于调用'MainWindow :: connect(...'"的匹配函数

我做错了什么?

谢谢您的帮助.

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QNetworkAccessManager>
#include <QNetworkReply>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow {
    Q_OBJECT
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

protected:
    void changeEvent(QEvent *e);

private:
    Ui::MainWindow *ui;
    QNetworkAccessManager networkManager;

private slots:
    void on_requestButton_clicked();
    void on_authenticationRequired(QNetworkReply* reply, QAuthenticator* auth);
    void on_finished(QNetworkReply* reply);
};

#endif // MAINWINDOW_H
Run Code Online (Sandbox Code Playgroud)
#include "mainwindow.h"
#include "ui_mainwindow.h"

void MainWindow::on_requestButton_clicked()
{

}

void MainWindow::on_authenticationRequired(QNetworkReply* reply, QAuthenticator* auth)
{

}

void MainWindow::on_finished(QNetworkReply* reply)
{

}

MainWindow::MainWindow(QWidget …
Run Code Online (Sandbox Code Playgroud)

c++ qt

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

是否存在可以在不损失int64的情况下进行转换的浮点数据类型?

Visual C++中是否有浮点数据类型,尾数中有足够的精度来保存INT64?

示例应该可以执行以下操作:

__int64 from = 0xFFFFFFFFFFFFFFFF;
mightyFP intermediate;
__int64 to;
intermediate = from;
to = intermediate;
assert(from == to);
Run Code Online (Sandbox Code Playgroud)

其中mightyFP是我搜索的未知类型.

问候,托比亚斯

c++ floating-point visual-c++

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

C++:"T const*[]"是什么意思?

  • 什么"T const*[]"作为参数类型是什么意思?
  • 与"T*[]"相比有什么区别?
  • 并且作为最后一个问题:为什么我不能将"T*[]"传递给需要"T const*[]"作为参数的函数?

谢谢您的帮助.

托比亚斯

c++

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

为什么这个boost :: spirit :: qi规则与输入不匹配?

我尝试继续处理我之前的示例并扩展规则.我的问题是,使用ID_IDENTIFIER的规则不起作用 - 虽然我知道词法分析器正在工作(使用单元测试).

这是一个例子:

#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/lex_lexertl.hpp>

namespace qi  = boost::spirit::qi;
namespace lex = boost::spirit::lex;

enum LexerIDs { ID_IDENTIFIER, ID_WHITESPACE, ID_INTEGER, ID_FLOAT, ID_PUNCTUATOR };

template <typename Lexer>
struct custom_lexer : lex::lexer<Lexer>
{
    custom_lexer()
        : identifier    ("[a-zA-Z_][a-zA-Z0-9_]*")
        , white_space   ("[ \\t\\n]+")
        , integer_value ("[1-9][0-9]*")
        , hex_value     ("0[xX][0-9a-fA-F]+")
        , float_value   ("[0-9]*\\.[0-9]+([eE][+-]?[0-9]+)?")
        , float_value2  ("[0-9]+\\.([eE][+-]?[0-9]+)?")
        , punctuator    ("\\[|\\]|\\(|\\)|\\.|&>|\\*\\*|\\*|\\+|-|~|!|\\/|%|<<|>>|<|>|<=|>=|==|!=|\\^|&|\\||\\^\\^|&&|\\|\\||\\?|:|,")// [ ] ( ) . &> ** * + - ~ ! / % << >> < > <= >= == != ^ & …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-spirit boost-spirit-qi boost-spirit-lex

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

如何使llvm优化以下浮点方程

我有一个小测试程序,它使用llvm来计算某些方程式的值.设置如下:我创建了一个包含添加,乘法,除法,减法和平方双数的函数的bc文件.现在我通过组合加法和乘法函数来设置具有不同参数的线性方程.然后我使用万花筒示例中的优化器转换函数.这很好用 - 结果函数将x作为参数,只进行2次浮点计算(乘法和加法).设置这些功能的代码是:

Function* createLinearFunction(const std::string& name, double factor, double summand, Module* module)
{
    LLVMContext& context = getGlobalContext();

    Function* func = cast<Function>(module->getOrInsertFunction(name.c_str(),Type::getDoubleTy(context),Type::getDoubleTy(context),(Type *)0)); 
    //add basic block
    BasicBlock* bb1 = BasicBlock::Create(context,"EntryBlock",func);
    IRBuilder<> builder(bb1);
    Argument* x0 = func->arg_begin();
    x0->setName("x0");
    Value* x1 = ConstantFP::get(context,APFloat(factor));
    Value* x2 = ConstantFP::get(context,APFloat(summand));
    std::vector<Value*> args1;
    args1.push_back(x0);
    args1.push_back(x1);
    Value* x3 = builder.CreateCall(mul_d_dd,args1,"");
    std::vector<Value*> args2;
    args2.push_back(x2);
    args2.push_back(x3);
    Value* x4 = builder.CreateCall(add_d_dd,args2,"");
    builder.CreateRet(x4);
    return func;
}
Run Code Online (Sandbox Code Playgroud)

我现在想要的是以下内容 - 当我生成一个因子1的函数时,它应该优化乘法,并且使用summand 0它应该优化加法.使用因子0,它应该只返回summand.有通行证已经做到了吗?我只是假设llvm没有这样做,因为这里提到的原因:为什么LLVM不通过优化浮点指令?

谢谢你的帮助Tobias


添加 - 我尝试添加instcombine via createInstructionCombiningPass(),但优化的代码看起来仍然相同:

define double @Linear0xPlus0(double …
Run Code Online (Sandbox Code Playgroud)

c++ llvm

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

Win32控制台问题

是否有可能创建一个程序作为控制台应用程序,如果从控制台启动,并作为Windows程序(使用GUI),否则启动?

如果有可能 - 我该怎么做?

托比亚斯

console winapi native

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

比较2个一维信号

我有以下问题:随着时间的推移,我有2个信号.它们来自同一个来源,因此它们应该是相同的.我想检查一下他们是不是真的.

并发症:

  • 它们可以用不同的采样率来测量
  • 开始/结束时间不相关.测量不是同时开始并且同时结束.
  • 两个信号之间可能存在时间偏移.

我的想法是用傅里叶变换,卷积和统计方法进行比较.有人可以给我发一些链接,我可以找到更多关于如何处理这个问题的信息吗?

algorithm signal-processing

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

如何检测单个文件的文件系统大小限制

有没有办法检测单个文件的文件系统大小限制(例如胖32上4gb)?

它必须适用于Windows操作系统,但更好的是便携式解决方案.检测文件系统类型可能是一种解决方法,但我不知道如何做到这一点.

有人可以帮帮我吗?

提前谢谢托比亚斯

c++ filesystems

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

如何使用 cmake 组织大型构建

我正在处理一个更大的项目,我们正在考虑如何组织大型构建。我认为它应该/可以用 cmake 来完成,但目前我不知道如何满足我们的所有要求。

这是我们的项目组织的样子:

  • 该项目由多个子项目(称为构建模块)组成
  • 每个构建模块可以由创建静态或动态库、可执行文件或测试的多个部分组成
  • 构建模块可能依赖于其他构建模块的公共接口
  • 为了加快构建时间,每个构建模块都应该构建在单独的 CI 服务器上。依赖项不应该每次都构建,而是从一些二进制存储库中获取(我们在这里考虑 nuget,但最简单的解决方案可能是网络共享)

考虑到 cmake,我正在考虑这样的目录结构

- Root directory
    - Build Module 1
        - Build Module 1 Static Lib
        - Build Module 1 Unit Test
        - Build Module 1 Public Interface
    - Build Module 2
    - ...
    - Build Module n
Run Code Online (Sandbox Code Playgroud)

第一个问题:从哪里开始放置 CMakeLists.txt 文件?我会从构建模块级别开始,而不是从 root 开始。这样,如果开发人员只想构建模块 3、4 和 5,他可以创建他的自定义模块。

第二个:如何处理部署/查找包。理想情况下,依赖项的查找机制将允许创建从源构建的构建以及仅从源获取依赖二进制文件的构建。我希望这可以使用 find_package 和 xxxConfig.cmake / FindXXX.cmake 以某种方式完成。有人能告诉我怎么做吗?如何创建这些文件?如何使用 cmake 创建适当的部署?

第三个问题:有人了解我们如何将 nuget 集成到这个过程中吗?这可以作为 cpack 生成器完成吗?已经有了吗?cpack 能否替代 nuget(意味着它可以从某个远程位置获取二进制文件并在构建过程中安装它们)?

谢谢你。托比亚斯

c++ cmake

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