原创 QT中調用C#封裝的DLL如何傳string類型的參數

當然我們知道不能直接在Qt中調用C#封裝的dll,我這邊採用的實現方案是先用VS建好C#類庫項目,再用VS創建CLR項目調用上一步生成的DLL,得到.lib和.dll供Qt項目調用。具體操作步驟參考的這篇博文: https://blog.

原创 gcnew關鍵字

第一次見gcnew關鍵字,原來它是在C++/CLI中表示在託管堆上分配內存的。爲了與指針區分,用了^來代替*,它們有這兩點區別: 1.gcnew返回的是一個句柄(handle),而new返回的是實際的內存地址; 2.gcnew創建的對象由

原创 qt項目中boost庫的使用

最近開發的項目中用到了boost庫,使用過程中遇到了一些編譯問題,記錄一下。 boost庫編譯步驟: 0、安裝好qt,我使用的是qt5.12.5。默認安裝在C盤目錄下; 1、boost壓縮包下載:boost.org上下載的boos

原创 C#委託與事件的使用

功能要求: 有兩個窗口類,分別是StartUpWnd類以及Form1類,需要在StartUpWnd界面中點擊“”運行“按鈕”進入Form1界面,同時需要在Form1界面上點擊“主界面”按鈕重新調出“主界面”。 解決方案: 第一個功能非常基

原创 初始openCV之入門實例五起

剛剛在Qt上配置好了OpenCV,寫了五個較爲基礎的實例,用到一些比較常用的函數。記錄一下。首先都是在QT中新建的Qt Console Application項目,先在.pro文件中加入:INCLUDEPATH += D:/opencv2

原创 線程和進程的區別聯繫

線程和進程的區別聯繫:1,進程:子進程是父進程的複製品。子進程獲得父進程數據空間、堆和棧的複製品。2,線程:相對於進程而言,線程是一個更加接近與執行體的概念,它可以與同進程的其他線程共享數據,但擁有自己的棧空間,擁有獨立的執行序列。 兩者

原创 QCustomPlot使用過程中出現的錯誤

我們知道在使用一個類的指針時,應先在頭文件中聲明,在構造函數中初始化或者new出來,一定不能不初始化,否則會出現內存錯誤。在析構函數中還應該把該指針delete掉,並且讓其爲NULL。if(p != NULL) { delete p; p

原创 大數相乘

使用分治法實現大數相乘,不要求兩數長度一致。時間複雜度爲T(N)=O(N^1.59).#include <iostream>#include <math.h>using namespace std;int SIGN(long A);lon

原创 IplImage結構定義

typedef struct _IplImage { int nSize; /* IplImage大小 */ int ID; /* 版本 (=0)*/

原创 openCV內置畫圖函數以及畫虛線函數的實現

話不多說,直接上代碼:#include <QCoreApplication>#include <cv.h>#include <highgui.h>#include <QDebug>#include <stdio.h>void drawD

原创 Qt中配置OpenCV開發環境

整個過程還是比較艱辛,記錄一下使用到的各個軟件版本。我安裝的是qt-opensource-windows-x86-mingw492-5.6.3。之後下載安裝cmake-3.11.2-win64-x64.msi,注意安裝時選擇爲所有用戶添加

原创 C++多態之二

純虛函數在基類中是沒有定義的,必須在子類中加以實現,很像java中的接口函數! 虛函數 引入原因:爲了方便使用多態特性,我們常常需要在基類中定義虛函數。 class Cman { public: virtual void Eat(){……

原创 Qt中blockSignals函數的用法

前面的一篇博客中提到給一個創建了信號槽的ComboBox添加或去除Item時採用的方法是在對該ComboBox操作前先使用disconn函數將信號槽先切斷,操作好後在connect。 今天發現有另一種解決方法,就是使用blockSigna

原创 __cdecl __fastcall與__stdcall的區別

__cdecl __fastcall與__stdcall,三者都是調用約定(Calling convention),它決定以下內容:1)函數參數的壓棧順序,2)由調用者還是被調用者把參數彈出棧,3)以及產生函數修飾名的方法。1、__std

原创 從一個例子看類的構造函數、析構函數、拷貝構造函數和賦值函數的實現

class String { public: //普通構造函數 String(const char *str = NULL); //拷貝構造函數 String(const String &other);