在NDK中寫一些東西,剛好遇到要把int、long 轉成string,原本是要用c++11的函數 to_string來自動轉格式, 編譯參數也指定c++11了,但是NDK就是說找不到這個函數,問問google大神才發現NDK沒有實作出全部的c++11特性出來,網路上剛好有人寫了一個函數就拿來用 程式碼如下:
#include <string>
#include <sstream>
template <typename T>
std::string to_string(T value)
{
std::ostringstream os ;
os << value ;
return os.str() ;
}
int main()
{
std::string perfect = to_string(5) ;
}
大衛的記事 發表在 痞客邦 留言(0) 人氣(501)
今天用到一個read去讀取eventfd,結果想看看內容,用__android_log_print要顯示出內容,發現內容值的型態是uint64_t,編譯出現了這樣的告警:
warning: format '%lld' expects argument of type 'long long int', but argument 5 has type 'uint64_t {aka long unsigned int}' [-Wformat=]
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
大衛的記事 發表在 痞客邦 留言(0) 人氣(391)
因為需要用到不受NTP影響的抓取系統時間函數,因此呼叫syscall(SYS_clock_gettime, CLOCK_MONOTONIC_RAW, &ts);
結果遇到了error: 'SYS_clock_gettime' was not declared in this scope的編譯錯誤,查了一下NDK的版本原始碼,發現APP_PLATFORM := android-21可以正常呼叫,android-21以前的版本沒有SYS_clock_gettime的定義,查一下android-16的linux-syscalls.h內容,他是定義成__NR_clock_gettime,因為我的minSDK是android-16,所以就改成syscall(__NR_clock_gettime, CLOCK_MONOTONIC_RAW, &ts); 就可以編譯成功了,測試函數也正常。
大衛的記事 發表在 痞客邦 留言(0) 人氣(146)
因為C++方面用到eventfd,所以按慣例引入宣告檔#include <sys/eventfd.h>,沒想到NDK編譯出現fatal error: sys/eventfd.h: No such file or directory這樣的錯誤,查了一下,在Application.mk裡放一行編譯參數就可以了,參數如下:
APP_PLATFORM := android-16
大衛的記事 發表在 痞客邦 留言(0) 人氣(268)

首先打開安裝好的Microsoft SQL Server Management Studio連上資料庫,然後進入已經建好的資料庫中,對資料庫選單中的"可程式性"-->"預存程序"點滑鼠右鍵,選擇"新增預存程序",相關畫面如下圖一:
(圖一)
大衛的記事 發表在 痞客邦 留言(0) 人氣(43,747)

Windows Server 2012 R2預設桌面是沒有以前慣用的圖示了,像是本機、控制台、網路、我的文件夾、資源回收桶等圖示,還好可以透過指令把那些叫出來。如下圖所示對準視窗方框(紅色框框位置,相同功能也可以用win+R來叫出來)按下滑鼠右鍵,然後點選執行(綠色框框位置):
點選執行後會出現如下圖的執行對話框,在開啟的位置輸入 Rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
大衛的記事 發表在 痞客邦 留言(0) 人氣(17,676)
C/C++的常用巨集和意義:
__FILE__ : 目前的原始碼檔名,
__LINE__ : 目前原始碼的行數(第幾行的意思)
__DATE__ : 編譯時的日期
__TIME__ : 編譯時的時間
__func__ / __FUNCTION__ : 原始碼的函數函數名稱
大衛的記事 發表在 痞客邦 留言(0) 人氣(88)
進入"設定"選"關於手機",對MIUI版本快速點選直到題示進入開發人員模式,然後退出,進入其他進階設定,就可以看到開發人員選項了.進入舊有USB 偵錯可以選。
大衛的記事 發表在 痞客邦 留言(0) 人氣(1,081)
在Button的XML宣告中增加:
android:textAllCaps="false"
大衛的記事 發表在 痞客邦 留言(0) 人氣(920)

進入android studio的External tools設定,然後按一下+號,然後填入Name、Description、Program、Parameters、Working directory等需要填入的值。
Name: 填入工具會顯示的名稱,"javap"還滿容易看懂.
大衛的記事 發表在 痞客邦 留言(0) 人氣(146)