在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) ;
}

資料來源:http://stackoverflow.com/questions/947621/how-do-i-convert-a-long-to-a-string-in-c

 

文章標籤

大衛的記事 發表在 痞客邦 留言(0) 人氣()

今天用到一個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) 人氣()

因為需要用到不受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) 人氣()

因為C++方面用到eventfd,所以按慣例引入宣告檔#include <sys/eventfd.h>,沒想到NDK編譯出現fatal error: sys/eventfd.h: No such file or directory這樣的錯誤,查了一下,在Application.mk裡放一行編譯參數就可以了,參數如下:

APP_PLATFORM := android-16

實際要用哪個API Level要自己去測試,因為我的minSDK是設定16,所以這裡也用android-16,實際我測試用android-9和android-21事都能在NDK編譯成功。詳細的APP_PLATFORM說明請見: 

文章標籤

大衛的記事 發表在 痞客邦 留言(0) 人氣()

首先打開安裝好的Microsoft SQL Server Management Studio連上資料庫,然後進入已經建好的資料庫中,對資料庫選單中的"可程式性"-->"預存程序"點滑鼠右鍵,選擇"新增預存程序",相關畫面如下圖一:

SP1.jpg

(圖一)

文章標籤

大衛的記事 發表在 痞客邦 留言(0) 人氣()

Windows Server 2012 R2預設桌面是沒有以前慣用的圖示了,像是本機、控制台、網路、我的文件夾、資源回收桶等圖示,還好可以透過指令把那些叫出來。如下圖所示對準視窗方框(紅色框框位置,相同功能也可以用win+R來叫出來)按下滑鼠右鍵,然後點選執行(綠色框框位置):

win2012-1.jpg

點選執行後會出現如下圖的執行對話框,在開啟的位置輸入 Rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 

文章標籤

大衛的記事 發表在 痞客邦 留言(0) 人氣()

C/C++的常用巨集和意義:

__FILE__ : 目前的原始碼檔名,
__LINE__ : 目前原始碼的行數(第幾行的意思)

文章標籤

大衛的記事 發表在 痞客邦 留言(0) 人氣()

進入"設定"選"關於手機",對MIUI版本快速點選直到題示進入開發人員模式,然後退出,進入其他進階設定,就可以看到開發人員選項了.進入舊有USB 偵錯可以選。


文章標籤

大衛的記事 發表在 痞客邦 留言(0) 人氣()

在Button的XML宣告中增加:

android:textAllCaps="false"

就不會自動變大寫了。

文章標籤

大衛的記事 發表在 痞客邦 留言(0) 人氣()

進入android studio的External tools設定,然後按一下+號,然後填入Name、Description、Program、Parameters、Working directory等需要填入的值。

Name: 填入工具會顯示的名稱,"javap"還滿容易看懂.

Description: 填入說明

文章標籤

大衛的記事 發表在 痞客邦 留言(0) 人氣()