Time of Update: 2018-12-03
寫一個靜態成員類,當作全域變數用,結果QMap類型的怎麼搞都不行,最後終於弄明白了,寫的這裡備忘:Util.h內容#ifndef UTIL_H_#define UTIL_H_#include <QString>#include <QUrl>#include <QHttpResponseHeader>#include <QMap>#include <QVariant>class Util: public QObject
Time of Update: 2018-12-03
#ifndef AVLNODE_H#define AVLNODE_H#include <iostream>using namespace std;template <class T> class AvlTree; //聲明AvlTree類template <class T>class AvlNode{public: friend class AvlTree<T>;//友元類 //建構函式
Time of Update: 2018-12-03
最近做的項目用到很多數字訊號處理的知識。因為對這部分並不特別熟悉,編程有很大限制,而MATLAB提供了豐富的數字訊號處理工具箱,於是MATLAB就成了很好的選擇。在嘗試將MATLAB程式整合到C++中時,遇到不少問題,特開此題。MATLAB在7.0以後使用MCR(Matlab Compiler Runtime)以及CTF(Component Technology File)技術。以前的編譯器側重將MATLAB程式編譯成C/C++程式(像MATCOM4.5那樣),但後來側重編譯為MCR可執行程式。
Time of Update: 2018-12-03
#define ENUM_DECLARE(class_type, enum_type) \public: \enum_type value; \operator enum_type(){return value;} \class_type(){} \class_type(int val){ value = (enum_type)val;} \class_type(const enum_type& n):value(n){}用法樣本:#include
Time of Update: 2018-12-03
出現這個錯誤,一般是由於兩個CPP相互都相互包含了對方的標頭檔造成的,比如: 當mainwindow.cpp、configdialog.cpp兩個檔案,分別包含了對方的標頭檔,並且分別又在自己的類中聲明了對象,即: mainwindow.cpp#include "configdialog.h"class MainWindow {ConfigDialog *configDialog;}; configdialog.cpp#include "mainwindow.h"class
Time of Update: 2018-12-03
一直對C++中的delete和delete[]的區別不甚瞭解,今天遇到了,上網查了一下,得出了結論。做個備份,以免丟失。 C++告訴我們在回收用 new 分配的單個對象的記憶體空間的時候用 delete,回收用 new[] 分配的一組對象的記憶體空間的時候用 delete[]。 關於 new[] 和 delete[],其中又分為兩種情況:(1) 為基礎資料型別 (Elementary Data Type)分配和回收空間;(2) 為自訂類型分配和回收空間。 請看下面的程式。
Time of Update: 2018-12-03
例子是仿照柯元旦的《Android核心剖析》中樣本。在external下建立檔案夾MySurface, 裡面編寫兩個檔案,一個Android.mk,一個Welcome.cppLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= \Welcome.cppLOCAL_SHARED_LIBRARIES := \libcutils \libutils \libui \libsurfaceflinger_client
Time of Update: 2018-12-03
C++泛型程式設計:源起、實現與意義為什麼泛型泛型程式設計(Generic Programming)最初提出時的動機很簡單直接:發明一種語言機制,能夠協助實現一個通用的標準容器庫。所謂通用的標準容器庫,就是要能夠做到,比如用一個 List 類存放所有可能類型的對象,這樣的事情;熟悉一些其它物件導向的語言的人應該知道,如 Java 裡面這是通過在 List 裡面存放Object 引用來實現的。Java 的單根繼承在這裡起到了關鍵的作用。然而單根繼承對
Time of Update: 2018-12-03
總所周知,c++的實現檔案的尾碼多種多樣,通常有:.cpp, .cc, .cxx, .c++等。其中.cpp最為常見。在Symbian環境下(OpenC/C++)可以順利編譯.cpp的代碼,而在編譯.cc檔案時就不好使了(會產生一些莫名其妙的問題)。這隻是一個檔案尾碼識別問題,以前我的解決方案是把.cc修改為.cpp。剛才在瀏覽一個文章時,看到Forum Nokia Expert(jhnwkmn)的回複中提供瞭解決辦法,很簡單。具體做法如下:You need to modify
Time of Update: 2018-12-03
網路中已經有許多有關enum2string的討論,做法也多種多樣(見末尾的附錄)。本文也就這個主題描述一個簡單的做法。少說多做,貼代碼為上://// enum2string macro definition//#define ENUM_STR_BEGIN(name) /const wchar_t* _get##name(long num) /{ /switch(num) /{#define ENUM_STR_ITEM(e) /case e: return L ## #e;#define
Time of Update: 2018-12-03
在Carbide.c++中,選中"View process output"選項方可看到輸出到Debug控制台的資訊。此外要確認epoc.ini檔案中LogToFile,LogToDebugger參數值正確,即:LogToFile 0LogToDebugger 1"View process output"選項的圖解配置。其他開發工具的使用RDebug的方法參考這裡。參考: 1. http://discussion.forum.nokia.com/forum/showthread.php?t=947
Time of Update: 2018-12-03
序言在測試tinythread++庫在不同移動平台下的可用性時,碰到幾個問題。tinythread++號稱是相容c++11標準的thread庫,當不能使用c++11時可以使用之。未來c++11更為流行時可輕易更換。不同平台下的測試狀況:iOS: 通過。需要將調用c++代碼的.m檔案更名為.mm檔案。 WP: 未知。暫未涉及。Android: 通過。在解決了下面的幾個問題之後。Android JNI環境下的C++問題:1) error: base operand of '->' has
Time of Update: 2018-12-03
(本文摘自c++論壇裡自己文章的回複。)GCC4.5引入這個特性。有興趣的朋友可以編譯測試下面這段代碼:#include <algorithm>#include <cmath>void abssort(float *x, unsigned N) { std::sort(x, x+N, [](float a, float b) { // 注意此處的方括弧 return std::abs(a) <
Time of Update: 2018-12-03
前提:需要使用支援更高gcc版本的第三方NDK包。Android預設版本為:4.4.3。第三方NDK包下載(gcc-4.6.3):http://www.crystax.net/en/android/ndk/7具體使用注意事項請參考此文。本測試主要展示以下內容:1、使用std::function和std::bind實現sigslot機制;2、使用C++11的Lambda運算式3、在C++代碼中回調Java對象的方法例子來源:本測試例子來自網上的一個討論裡的回複,由於看到有lambda運算式,就有了
Time of Update: 2018-12-03
Nokia最近發布了新版OpenC/C++ Plugin SDK(41.4Mb),支援STL與Boost。STL選用的是著名的STLport庫,此前一直由某個個人提供Symbian平台移植下載包,現在變成官方支援了。Boost的優秀及豐富功能無需多言。有了這些,無疑使得Symbian開發平台如虎添翼,其陣容變得更強大、更有吸引力了。相信會有更多的開源應用移植到Symbian平台上,也會有更多的新應用出現在這個平台上。下面簡述其功能塊:1、C
Time of Update: 2018-12-03
//將SQL server2000中儲存的映像顯示在Picture中 private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e) { byte[] buffByte = null; string comm = @"select img from table1 where id = " + this.listBox1.SelectedValue ; this.sqlCommand1
Time of Update: 2018-12-03
儘管新版的Open C/C++ SDK的發布支援了stlport, boost等庫,但boost的支援尚不完整。前些時曾初步測試Regex庫,編譯時間提示系統標頭檔中有許多錯誤。近日得空終於使得這個測試例子能運行了。下面描述具體過程:我的測試環境是: SDK: S60 3rd MR Ed + Open C/C++ SDK; IDE: Carbide.c++ 1.30、準備工作安裝OpenC/C++
Time of Update: 2018-12-03
由於目前的Carbide.c++ 1.2 Express版尚無自動產生CView衍生類別的嚮導。於是就製作了一個,在多視架構的項目裡可以加快開發。下載:http://download.csdn.net/source/223944說明:1、安裝說明見上面的連結或參照壓縮包內的ReadMe.txt檔案;2、使用嚮導產生CView衍生類別的後續工作:重定義xxxView.h檔案中的 View Id將xxxView.cpp檔案末尾的RSS資源拷貝到項目的rss檔案裡修改資源中的假想CommandId:
Time of Update: 2018-12-03
Carbide.c++提示及有用的外掛程式:== 提示 ==詳情如下:1、如何在程式中支援本地語言注釋? 答: 在Carbide.c++菜單,修改當前編輯視窗的Encoding為UTF-8。 在Carbide.c++菜單找: "Edit"->"Set Encoding..."->Other: UTF-8 上面是修改當前已開啟編輯視窗的Encoding。還可以配置當前項目的Encoding, 開啟工程屬性(press ALT+Enter):
Time of Update: 2018-12-03
方法一:使用Mutex來進行 1. 首先要添加如下的namespace: using System.Threading;2. 修改系統Main函數,大致如下: bool bCreatedNew; //Create a new mutex using specific mutex name Mutex m =new Mutex( false, "myUniqueName", out