Time of Update: 2018-12-03
上一講我把Lua基本的棧規則講了一下,然後完善了一下我的CLuaFn類。讓它可以支援任意參數數量和函數名稱的傳值。當然,這些功能是為了今天這篇文章而鋪路的。看了七貓的回帖,呵呵,確實應該說一下SWIG這個工具,說真的,我對這個工具理解不深,因為沒有怎麼用過,讀過一些關於它的文章,似乎是幫你把C++的功能封裝成一個Lua基本庫的東西,但是後來研究,他可以很輕鬆幫你把公用函數封裝成一個Lua的基本庫(類似C++的dll),但是對於我的需求而言,可能不太一樣。因為我大量的是需要在C++裡面進行資料轉送
Time of Update: 2018-12-03
在c++中,new作為一個操作符,也是可以被重載的,這個可能很多人比較陌生。在 Effective C++這本書中,專門提到了這方面的知識,看過此書,做一些總結,順便在網上找到一些內容,實現一個可以檢測記憶體泄露的記憶體配置機制(new delete)。1. new_handler在鋪敘重載new之前,先說一下new_handler, 如果讀過
Time of Update: 2018-12-03
Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4
Time of Update: 2018-12-03
DLL可以使用兩種方法將公用符號匯入到應用程式中或從 DLL 匯出函數: 產生 DLL 時使用模組定義 (.DEF) 檔案。 在主應用程式的函數定義中使用 __declspec(dllimport) 或 __declspec(dllexport) 關鍵字。 使用 .DEF 檔案模組定義 (.DEF) 檔案是包含一個或多個描述各種 DLL 屬性的 Module 語句的文字檔。如果不使用 __declspec(dllimport) 或 __declspec(dllexport) 匯出 DLL 函數,
Time of Update: 2018-12-03
原文:http://blog.csdn.net/sparkliang/archive/2009/03/20/4008096.aspx什麼是C++ Traits? 並舉例說明首先假如有以下一個泛型的迭代器類,其中型別參數 T
Time of Update: 2018-12-03
下面的類實現了檔案的加密和解密操作,實驗了幾種檔案類型均沒有問題,現在和大家共用一下.namespace MyCryptoHelp{ /// <summary> /// 異常處理類 /// </summary> public class CryptoHelpException : ApplicationException { public CryptoHelpException( string msg ):base(
Time of Update: 2018-12-03
在Linux核心程式boot/head.s執行完基本初始化操作之後,就會跳轉去執行init/main.c程式。那麼head.s程式是如何把執行控制轉交給init/main.c程式的呢?即組譯工具是如何調用執行C語言程式的?這裡我們首先描述一下C函數的調用機制、控制權傳遞方式,然後說明head.s程式跳轉到C程式的方法。函數叫用作業包括從一塊代碼到另一塊代碼之間的雙向資料傳遞和執行控制轉移。資料傳遞通過函數參數和傳回值來進行。另外,我們還需要在進入函數時為函數的局部變數分配儲存空間,並且在退出函
Time of Update: 2018-12-03
如:路徑:“D:\a\b” 有如下檔案P1009.txtZ1009.txtT1009.txt複製到E:盤下,自動建立一個以日期為檔案夾名的檔案夾下。可以使用Process,用它開啟CMD,然後執行DOS命令!(可以設定不開啟CMD視窗)《1》System.Diagnostics.Process p = new System.Diagnostics.Process();p.StartInfo.FileName= "cmd.exe
Time of Update: 2018-12-03
1.try後面一個finally,try中有一個return,那麼finally中的代碼會不會運行?如果運行,是在return後還是return前答:會運行,並且在return 後運行。 2.當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?答:不能,一個對象的一個synchronized方法只能由一個線程訪問。 3.進程和線程的區別?答:進程是系統進行資源分派和調度的單位;線程是CPU調度和指派的單位,一個進程可以有多個線程,這些線程共用這個進程
Time of Update: 2018-12-03
再說這次的常用”方法“之前,先向大家道個歉,我前面說的,RepeatButton可以實現down,up的功能,其實不然,這節課先來糾正一下。 button:按的時間很短,就是點了一下; RepeatButton:可以按很長的時間;怎麼實現down,up的功能了?高手教了我招,就是如所示的建立一個GUIText(文字)或者是GUITexture(圖片)然後給它綁定個指令碼,指令碼裡面可以用OnMouseDown
Time of Update: 2018-12-03
1.String/StringBuilder的異同 string是一個不可變的資料類型,一旦對字串對象進行了初始化,該字串對象就不能改變了。修改字串內容的方法 和運算子實際上是建立一個新的字串. stringbuilder分配好記憶體,對字串的修改就在賦予stringbuilder執行個體的儲存單元中進行. 舉例: string的確是不能修改的: string str = "a"; str =
Time of Update: 2018-12-03
Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 C++中的new其實是一個很糊弄人的術語,它有兩種不同的含義,new運算子(newoperator)和new函數(operator new),值得記錄一下。一 new運算子最常用的是作為運算子的new,比如:string*str = new
Time of Update: 2018-12-03
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1345 A題:位操作 import java.util.Scanner;public class Main { public static String trans(String[] s) { Long l = Long.parseLong(s[0].trim(), 16); String b = Long.toBinaryString(l); //
Time of Update: 2018-12-03
#define min3v(v1, v2, v3) ((v1)>(v2)? ((v2)>(v3)?(v3):(v2)):((v1)>(v3)?(v3):(v2)))#define max3v(v1, v2, v3) ((v1)<(v2)? ((v2)<(v3)?(v3):(v2)):((v1)<(v3)?(v3):(v1)))typedef struct{ int red; // [0,255] int green;
Time of Update: 2018-12-03
先把結論放上來: 加括弧調用沒有參數的建構函式,不加括弧調用預設建構函式或唯一的建構函式,看需求 C++在new時的初始化的規律可能為:對於有建構函式的類,不論有沒有括弧,都用建構函式進行初始化;如果沒有建構函式,則不加括弧的new只分配記憶體空間,不進行記憶體的初始化,而加了括弧的new會在分配記憶體的同時初始化為0。 以下代碼:#include <iostream>using namespace std;int main(){ int *a=new int[1000];
Time of Update: 2018-12-03
calloc(配置記憶體空間) 相關函數 malloc,free,realloc,brk表標頭檔 #include <stdlib.h>定義函數 void *calloc(size_t nmemb,size_t size);函數說明 calloc()用來配置nmemb個相鄰的記憶體單位,每一單位的大小為size,並返回指向第一個元素的指標。這和使用下列的方式效果相同:malloc(nmemb*size);不過,在利用calloc()配置記憶體時會將記憶體內容初始化為0。傳回值
Time of Update: 2018-12-03
#include <stdio.h>#define N 7#define M 7int max(int x, int y);void LCS(int L[N + 1][M + 1], char *strA, char *strB);void disp(int a[N + 1][M + 1]);int main() {char strA[] = "xzyzzyx";char strB[] = "zxyyzxz";int L[N + 1][M + 1];LCS(L, strA,
Time of Update: 2018-12-03
在實際工作中,你不應該寫出這樣的代碼。甚至不應該寫出有點類似的代碼。不過做為學習,它可以極大提高你對C語言的認識。讓你知道,原來這樣也是可以的。警告:以下代碼將殺死你數以萬計的腦細胞,腦容量較小者請小心。說明:以下程式可能是K&R舊式程式,肯定能編譯通過。請不要提出XX程式不能編譯等等問題。原始材料來自http://www0.us.ioccc.org/years.html英文比較好的可以直接看每個程式提供的hint檔案。[code]int i;main(){for(;i["]<i;
Time of Update: 2018-12-03
#include <iostream>using namespace std;int main(){ //等長的二維數組: int aInt2dArrayOnStack[2][8]; int* pIntArray = aInt2dArrayOnStack[0];//int * == int []; int (*pInt2dArray)[8] = aInt2dArrayOnStack; // int (*)[8] == int [][8]
Time of Update: 2018-12-03
1.換行:string SQL=@"INSERT INTO NetIDS_Eventbase(EVENTTYPEID,EVENTNAME,INITIALNAME) VALUES ({0},'{1}',{2}')"; //還可以更長,自然換行,不要寫轉義符。System.Data.OleDb.OleDbCommand da2=new