2020年10月31日 星期六

winform 在dll中的usercontrol只能用Any CPU或是x86編譯

 [問題描述]

現在有兩個專案,一個是dll的專案,裡面有usercontrol,
另一個是dll(usercontrol)的測試專案,
兩個編譯平台都是Release x64。
在測試專案winform的designer中,
將dll中的Usercontrol元件拉到form上,
出現「Failed to load toolbox item. It will be removed from the toolbox」,如下圖

dll的編譯設定如下圖


測試專案的編譯設定如下圖

2020年10月19日 星期一

強大的markdown語法與evernote

我滿早之前就知道markdown語法了,但一直都沒幫自己找機會去學習,
因為也覺得沒這個必要。八月初在撰寫COSCUP的共筆時,
發現是要使用markdown的語法,那時才動了要去學的念頭,
但一直都沒實行,寫共筆時也「偷吃步」地複製別人的語法並改字而已。

直到前一陣子轉換跑道順便休息,在整理github,並寫README.md,
這時才開始認真學markdown語法,學的心得是 ─ 太好用了!!!
所以我開始想:evernote支援markdown嗎?

2020年10月17日 星期六

windows 10 在每個視窗使用不同的輸入法

我平時習慣使用gcin的倉頡,
但由於我gcin設定成要按下Enter鍵才會有確認字,
這對於visual studio的vsvim來說不太好用,
按快捷鍵都會卡住。

在2019年11月初更新前,
在不同視窗都可以使用不同的輸入法,
但更新後,每個視窗可以使用的輸入法都只能一樣。
導致找資料和coding時要不斷地切換,超麻煩。
於是乎,便找找看有沒有相關設,還真被我找到了!

使用git Bash/Terminal 將已有的專案上傳到github

如果有VS 2015 以上的visual studio,在github上建立新專案是非常容易的事。
執行下面的步驟,記得要在安裝時勾選git相關選項

首先,先建立好一個專案,接著,
只要在工具欄中點選「View->Team Explorer」,
最後在Team Explorer的視窗中依指示上傳github即可

不過在linux下或是沒有使用visual studio,卻又想將已建好的專案想將之上傳到github就有點小麻煩(雖然難不到哪),
下面這邊記錄一下方法

若push發生錯誤,重傳的方法

已經發生了幾次push發生錯誤,修改後重傳的事件,
每次都要再查一次資料覺得麻煩
乾脆做個筆記

C\C++ X-Macro 初步心得

第一次看到X-macro這個技術時,是在[C/C++] enum to string 的方法實作 (X Macro)這篇文章中,
當時看得「霧霧煞煞」(台語:一頭霧水之意),但由於是滿有趣的技巧,
所以就先將其存在evernote中了。
昨天為了寫個功能,想做類似的事
所以特別打開evernote中的記事來研究一下,
終於看懂這個東西了,
所以在這邊記錄一下我對X-Macro的理解!

第一次看到X-Macro時,總是無法將三個小巨集(Macro)連起來,
看懂後發現是我想的太複雜了

先來個例子:
一般而言,將enum轉成字串,可能會用下面的方式
#include <iostream>

enum eOption
{
option1,
option2,
option3
};

char* OptStr[] = {"option1", "option2", "option3" };

const char* enum2str(eOption idx)
{
return OptStr[idx];
}

int main(int argc, char* argv[])
{

printf("%s\n", enum2str(eOption::option1));
printf("%s\n", enum2str(eOption::option2));
printf("%s\n", enum2str(eOption::option3));

system("pause");
return 1;
}