您好,我是 CPP 的新手.函数的声明和定义很混淆. 这是我的代码 文件名:pcanlinkerclass.cpp pCANLinkerClass::pCANLinkerClass() { LoadAPI(); } void pCANLinkerClass::LoadAPI() { mypcanlinkerfunction(); qDebug()
以下是关于 QT 的编程技术问答
在我的 C++/QT 应用程序中尝试访问 DLL 函数时. 例如 result = CAN_Initialize(PCAN_USBBUS1, PCAN_BAUD_250K); 它给了我错误 程序意外结束. C:\myDevelopment\build-PcanPortLinker-Desktop_Qt_5_5_0_MinGW_32bit-Debug\debug\PcanPortLinker.exe 崩溃 编译输出中的以下警告 警告:通过链接到 _CAN_Initialize 来解析 _CAN_Initialize@20使用 --enable-stdcall-fixup 禁用这些警告 使用 --disable-stdcall-fixup 禁用这些修复 警告:通过链接到 _CAN_GetErrorText 解决 _CAN_GetErrorText@12 解决方案 请不要多次转发同一个问题.我已经在 linker crash in C++/回答了这个问题QTwh
我想打印以下结构的 TPCANMsg.ID 和 DATA typedef struct tagTPCANMsg { DWORD ID; // 11/29-bit message identifier TPCANMessageType MSGTYPE; // Type of the message BYTE LEN; // Data Length Code of the message (0..8) BYTE DATA[8]; // Data of the message (DATA[0]..DATA[7]) } TPCANMsg; 有什么想法吗? 解决方案 要打印它,您必须了解数据类型的值代表什么.最好为此编写转换器功能. 蓝图-示例: const char* TPCANMessageTypeToText( const TPCANMessa
我第一次使用 C++ 做 CAN:我正在使用 API 函数来初始化 CAN.API CAN初始化函数如下 /// /// Initializes a PCAN Channel /// /// "The handle of a PCAN Channel" /// "The speed for the communication (BTR0BTR1 code)" /// "NON PLUG&PLAY: The type of hardware and operation mode" /// "NON PLUG&PLAY: The I/O address for the parallel port" ///
你好, 我正在尝试从 DLL 文件访问我的 API 函数.但收到此错误 “程序意外结束." C:\MyDevelopment\build-PcanPortLinker-Desktop_Qt_5_5_0_MinGW_32bit-Debug\debug\PcanPortLinker.exe 崩溃 我的 DLL 文件配置如下. LIBS += "C:/MyDevelopment/PcanLinker/build-PcanPortLinker-Desktop_Qt_5_5_0_MinGW_32bit-Debug/debug/PCANBasic.dll" 任何帮助/建议/经验分享将不胜感激. 谢谢 解决方案 要真正看到发生了什么,你需要在调试器下运行你的程序,当异常发生时,捕获它,并在此处发布调试器信息. 即异常类型、堆栈跟踪、发生错误的源代码等. 那么,我们也许可以查明您的问题 gwk
大家好. 当我一直在学习这本书:《Qt GUI Programming with Qt4, Second Edition》;看到一个例子,我在我的 Ubuntu 上实现了它,但它没有编译... 当我尝试做到这一点时,给出的错误是: finddialog.cpp:26:40: 错误:没有匹配函数调用‘QVBoxLayout::addWidget(QHBoxLayout*&)’finddialog.cpp:26:40: 注意:候选人是:/usr/include/qt4/QtGui/qboxlayout.h:85:10: 注意: void QBoxLayout::addWidget(QWidget*, int, Qt::Alignment)/usr/include/qt4/QtGui/qboxlayout.h:85:10: 注意:没有已知的参数 1 从‘QHBoxLayout*’到‘QWidget*’的转换 虽然我不操纵代码! 我知道错误的性质,但我不知道如何解决它... 出现此错
大家好 我正在开发一个套接字程序... 所以我想在 1)服务器端我用有效的 ip 运行我的程序 2)客户端我的其他程序可能在vps上运行......所以在那个vps中,我的程序使用本地IP地址(静态)连接到互联网但是任何一个自己的vps都有效......所以 我的问题是: 1)在我的客户端我可以用有效的端口收听和发送吗?? 2)我想用我的服务器连接到我的客户端程序我应该首先连接到vps......以及我如何使用vps ip访问那里的本地ip?? 3)你对它的每一个想法分享 谢谢 解决方案 1) 可以 2)你需要连接到VPS的公网IP.您或 ISP 需要设置 NAT(或端口转发)来将服务器的数据包转发到客户端(即 VPS 的私有 IP).
如何将此 blob 数据保存到数据库中?我正在阅读 Qbytearray 中的 jpeg 图像;但是在保存到数据库时,图像大小增加了一倍,从数据库中检索时,文件已损坏.如何正确读取图片?? QByteArray buf=NULL; originalPixmap =QPixmap(); originalPixmap = QPixmap::grabWindow(QApplication::desktop()->winId()); QString strfname; strfname.sprintf("%d",c); originalPixmap.save("C:\\Program Files\\image"+strfname+".jpeg","jpeg"); c++; char Data; QFile file("C:\\Program Files\\image"+strfname+".jpeg"); file.open(QIODevice::ReadOnly); int len=fi
我已经编写了一个方法来发送请求并将数据存储在 QString 中,但似乎从未发出信号,因为程序在等待信号时停止. 你能检查我的代码,看看我是不是错了?我已经使用不同的 URL(http 和 https)和 2 个不同的网络对其进行了测试,所以这应该不是问题. P.S:我还应该提到,在构建时(我使用 qmake)我收到一个警告: warning: ‘manager’ may be used uninitialized in this function [-Wmaybe-uninitialized] manager->get (QNetworkRequest (QUrl (url))); 我尝试过的: void ReqProcessor::getUpdates () //send request { QString url = baseURL; QNetworkAccessManager *manager = new QNetworkAcc
下周我有一个关于 C++、QT 和 SQL 的面试,谁能给我一些关于 C++、QT 和 SQL 的imp主题. 我已经有几年没有接触过编程了,所以对编程失去了联系,也不知道 C++ 的更新. 谁能给我推荐一本好书或网站,让我可以复习一下我的知识. 在此先感谢. 解决方案 你知道一周的时间很短.我几乎不相信你可以为面试做好充分的准备.然而: C++ 有一个新标准.如果您已经对该语言有很好的了解,我建议您只学习一些重点,我认为这篇文章对:每个 C++ 开发人员都应该使用的十个 C++11 功能[^].另一方面,如果您不了解 C++,则最好尝试了解该语言的基础知识. 我不知道QT,所以我无法就这个论点向你提出任何建议. 如果您已经知道 SQL,那么我想快速更新一下您的知识就足够了. 另一方面,如果你没有工作经验,是时候学习一些实践了. 在Qt方面,可能从以下开始支持大量 Qt 开发: 信号和插槽[^] 对象所有权和生命周期[^] 事件[^]
朋友,我如何通过Qt中的代码在windows中捕获系统资源使用情况(开始时间,结束时间,%cpu,%mem使用情况(如firefox)),我的意思是从哪里下载哪个库或DLL?我如何在 Qt 中使用它? 如果有人用小例子详细回答会很好.我是编程新手. 我能够像这样捕获总内存和自由内存 MEMORYSTATUSEX memory_status; ZeroMemory(&memory_status, sizeof(MEMORYSTATUSEX)); memory_status.dwLength = sizeof(MEMORYSTATUSEX); if (GlobalMemoryStatusEx(&memory_status)) { int q=memory_status.ullTotalPhys/(1024 * 1024); int q1=memory_status.ullAvailPhys/(1024 * 1024); } 解决方案 Qt 是一个 UI(用
我有一组自定义按钮.我想创建一个自定义信号,当它连接到一个以整数作为参数的插槽时,将向它发送一个变量. 例如,假设我有 10 个按钮,每个按钮都有一个从 0 到 9 的 id.我将它们全部连接到一个函数,该函数接受一个整数参数.该函数在调用时会打印它的参数.现在,当我按下按钮 4 时,我想在我的屏幕上看到一个 4. 我以前从未创建过自定义信号,所以我会非常感谢任何帮助. 我尝试过的: 我还没有尝试过任何东西.我只创建了类. 解决方案 只需实现一个连接到多个按钮的 QPushButton::clicked() 插槽.在里面将 sender() 转换为 QPushButton* 以访问按钮并识别它.然后,您可以发出带有附加参数的用户定义信号. 另一种方法是使用 C++11 lambda: int counter = 1; // Create button or access it using the ui member //QPushButton *but
void loadTriangles() { QFile f("C:Test/world.txt"); if(!f.open(QIODevice::ReadOnly)) { if(!QFile::exists(f.fileName())) { QMessageBox::information(this, "错误", QString("文件 %1 不存在").arg(f.fileName())); } 其他 { QMessageBox::information(this, "错误", QString("打开文件%1失败:错误%2").arg(f.fileName(), f.error())); } } 其他 { //从文件中读取 QTextStream ts( &f ); 顶点 v[3]; int vcount = 0; bool allok,好的; 而(!ts.atEnd()) { QString curLine = ts
LIBS += \ /usr/local/lib/libOpenMeshCore.so \ /usr/local/lib/libOpenMeshTools.so 我收到这部分的错误,说文件没有找到 ex. libOpenMeshcore.so cannot open 不知道这是什么文件.请帮忙告诉我在哪里可以得到文件 我尝试过的: 尝试从互联网上研究这个文件可能是什么,但没有找到任何 解决方案 我们应该如何根据这些信息知道.你甚至没有提供错误信息. QtMeshViewer 类不是 Qt 框架的一部分.看起来它来自某种项目.所以你应该检查相关文件和/或询问你从哪里得到的人. 这些库可能来自 OpenMesh[^] 项目.如果错误消息是找不到库,如果它们已安装到不同的目录和/或使用不同的文件名(例如版本号)安装,则必须安装它们并调整路径.