小编Izz*_*zzo的帖子

你如何在Qt中更改套件以定位x86机器?

我目前正在QtCreator开展一个项目.我正在使用基于x86的库,但我目前的项目是针对x64架构.显而易见的解决方案是将我的项目更改为针对x86架构.但是,我不知道该怎么做.

我已进入适当的窗口配置新的Qt套件.该套件使用MVCC x86编译器.然后我选择这个作为我的默认项目.在运行新的qmake之后,我尝试构建项目但是在64位项目中使用32位库时遇到了相同的错误.

所以我的问题是:如何在Qt中应用新工具包?我假设我应该能够点击"打开构建和运行套件选择器"并选择套件,但是,这只是为我提供了选择x64套件的选项.

任何的想法?

c++ windows qt

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

发布和调试编译程序的源代码有区别吗?[C/C++]

最近我对 C++ 编程有了更多的了解,并且一直在运行整个“调试与发布”编译版本。现在我觉得我对编译代码的发布版本和调试版本之间的一些差异有了相当不错的理解。对于代码的调试版本,编译器不会尝试优化代码,以便您可以运行调试器并逐行逐步执行程序。本质上,编译后的代码在执行方式上与您的源代码非常相似。在发布模式下编译时,编译器会尝试优化程序,使其具有相同的功能,但效率更高。

但是,我很好奇是否存在发布版本和调试版本之间的源代码可能不同的情况。也就是说,当我们提到 debug 与 release 时,我们总是只谈论编译后的代码,还是源代码中是否存在差异?

出现这个问题是因为我使用专有编程语言工作,其中不存在正式的分步调试器,但确实存在串行监视器。因此,我们的很多“调试”与“发布”代码都是通过 #defines 实现的,看起来像这样:

#ifdef _DEBUG

    check that error didn't occur...

    SerialPrint("Error occurred")

#endif
Run Code Online (Sandbox Code Playgroud)

总结一下我的问题,取决于您的 IDE,是否经常有设置来实现我所说明的内容?也就是说,当您尝试编译为调试版本时,它是否可以与源代码中的更改集成?还是发布与调试通常仅指已编译的二进制文件?

谢谢!

c c++ debugging release

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

什么是循环和非循环通信?

所以我已经搜索过之前是否有这样的问题,但我找不到我喜欢的答案.

我最近一直在使用一些PLC和变频驱动器,并认为这是时候我终于找到了循环和非循环通信.

如果我错了,请纠正我,但是当我想到循环数据时,我会想到不断更新的数据,并且能够将数据发送/采样到其他设备.关于我正在做的事情,我认为变频器能够更新可以从PLC采样/读取的速度和频率等信息.这就是我所考虑的循环通信,它总是更新可以作为数据发送的某种类型的信息.

所以我对这个假设可能完全错了,这让我想到了什么是非循环或非循环通信.

有帮助吗?

variables plc drive cyclic

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

Java Apache POI打开文件?

我有一个Java程序,它编辑现有的excel文件并将其保存为新文件.但是,我还希望程序在结束时自动打开新创建的文件.是否有apache poi命令可以让我这样做?

java excel file-io apache-poi

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

将数据放入头文件中是否可以"正常"?

比方说,我创建的C.一个简单的库调用地块比方说,我有一对夫妇的功能,例如PlotFunction(),SetTitle(),SetScale()等我们也可以说我想提供一些基本的情节,如Triangle,Rectangle等这是资源文件.我认为这些资源将被保存为数组(e.g. triangle[] = {0, 1, 2, 3, 2, 1, 0})

这是一个可以将数据包含在头文件中的示例吗?通常我认为头文件是为函数原型保留的,但这似乎是一个在头中包含变量/结构的实例.

这被认为是不好的做法吗?有更好的替代方案吗?

c header

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

如何在 C 中比较无符号整数和文字?

我正在做以下比较:

uint32_t value = 1000;

if(value < 100)
{
  // do something
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,什么 get 被投射到什么?“值”是否被强制转换为整数?100 是否被转换为整数或无符号整数?

c unsigned-integer

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

如何在 C 中定义一个接受格式化输入字符串的函数?

我构建了一个自定义日志记录函数,它接收“日志级别”和字符串。用户将指定与消息关联的日志级别(即错误、警告、跟踪等)。日志功能只会根据当前配置的日志级别将消息打印到控制台。

int global_log_level = INFO;

void logger(int msg_log_level, char * msg)
{
    if(msg_log_level >= global_log_level )
    {
        printf("Log Level = %u: %s", msg_log_level, msg);
    }
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想将格式化的字符串提供给这个函数。

logger(LOG_LEVEL_ERROR, "Error of %u occurred\n", error_code);
Run Code Online (Sandbox Code Playgroud)

但是,通过添加此“包装”逻辑,我无法输入格式化的消息。相反,我必须将消息写入一个临时字符串,然后将其输入到函数中。

char temp[512];
sprintf("Error of %u occurred\n", error_code);
logger(LOG_LEVEL_ERROR, temp);
Run Code Online (Sandbox Code Playgroud)

有没有办法实现记录器功能,这样我就不需要让用户自己创建一个临时字符串?

c printf formatted-input

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

通过构造函数和析构函数实现RAII是否被认为是"现代C++"?

随着C++中智能指针的出现,通过构造函数和析构函数手动实现RAII被认为是糟糕的"现代C++"实践吗?或者是否存在仍然相关的应用程序?

c++ raii c++11

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

如果 POSIX 套接字“读取”函数返回 0,是否表示发生了错误?

我正在处理遗留代码。此代码调用套接字上的“读取”。如果读取函数返回 0 或更低,调用函数将抛出错误。

n = read(sock, &buff[bytesRead], bytesToRead - bytesRead);
if (n <= 0) {
    syslog(LOG_CRIT, "ReadFromSocket: read() failed, errno=%d\n", errno);
    return FALSE;
}
Run Code Online (Sandbox Code Playgroud)

但是,我注意到这个函数抛出了一个错误,“errno”= 0。

我很好奇我是否遇到读取函数返回 0 的边缘情况,这被错误地解释为错误。

返回值 0 是否表示实际错误?

c sockets posix

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

SIMD 和 VLIW 指令是一样的吗?

SIMD(单指令多数据)和 VLIW(超长指令字)到底有什么区别?其中一个是另一个的子集吗?或者它们是两个完全不同的东西?

x86 simd instruction-set cpu-architecture vliw

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