個人的なメモ

めもめも.

VC++ DLLサンプル

DLL側

#include "pch.h"
#include "stdio.h"
#include <windows.h>

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

extern "C" __declspec(dllexport) int plus(int x, int y)
{
    return (x + y);
}

extern "C" __declspec(dllexport) void print_hoge(void)
{
    printf("HOGE\n");

    int msgboxID = MessageBox(
        NULL,
        L"message!!",
        L"Title",
        MB_ICONEXCLAMATION | MB_YESNO
    );
}

DLLを呼び出す側

#include <iostream>
#include <windows.h>

typedef int (*FUNC1)(int x, int y);
typedef int (*FUNC2)();


int main()
{
    std::cout << "Hello World!\n";

    HMODULE hModule = LoadLibrary(L"sample_dll.dll");
    if (NULL == hModule)
    {
        std::cout << "Failed load library!\n";
        return 1;
    }
    std::cout << "Success load library!\n";

    FUNC1 func = (FUNC1)GetProcAddress(hModule, "plus");
    if (NULL == func)
    {
        std::cout << "Failed load function!\n";
        return 2;
    }
    std::cout << "Success load function!\n";

    std::cout << func(1, 2);

    FUNC2 func2 = (FUNC2)GetProcAddress(hModule, "print_hoge");
    if (NULL == func2)
    {
        std::cout << "Failed load function!\n";
        return 2;
    }
    std::cout << "Success load function!\n";

    func2();

    while (1) {}
}

emacs package


init.elに下記を記載

(require 'package)
  
;; HTTP
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(add-to-list 'package-archives '("melpa-stable" . "http://stable.melpa.org/packages/") t)
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
(add-to-list 'package-archives '("ELPA" . "http://tromey.com/elpa/") t)
  
(package-initialize)

下記を実行

M-x package-refresh-contents
M-x package-list-packages

キーバインドemacsライクへ

1. ダウンロードした設定ファイルをインポート
http://sakura.qp.land.to/?Customize%2F%C5%EA%B9%C6%2F6
設定 => 共通設定 => キー割り当て => インポート => Emacs.key

2. Ctrl + Spaceで選択開始を設定
設定 => 共通設定 => キー割り当て => 識別「選択系」 => 機能「範囲選択開始」 => キー「Ctrl + Space」

右端で折り返す

1. 設定 =>タイプ別設定一覧 => 変更したいタイプを選択
2. 設定 => タイプ別設定 => スクリーン => 折り返し方法「右端で折り返す」
 

色を編集

1. .colファイルを作成。
2. 設定 =>タイプ別設定一覧 => 変更したいタイプを選択
3. 設定 => タイプ別設定 => カラー => インポートを押し、1で作成したファイルを選択

; テキストエディタ色設定 Ver3

[SakuraColor]
C[BRC]=1,1,ffff84,202020,0
C[CAR]=1,0,f7f7f7,3a3a3a,0
C[CBK]=0,0,f2f8f8,202020,0
C[CMT]=1,0,cc9b6a,202020,0
C[CTL]=0,0,c6c6c6,202020,0
C[CVL]=0,0,ffc184,3a3a3a,0
C[DFA]=0,0,202020,ffc184,0
C[DFC]=0,0,202020,c0fdbd,0
C[DFD]=0,0,202020,f2f8f8,0
C[EBK]=0,0,222827,202020,0
C[EOF]=1,0,ff9999,0c0c0c,0
C[EOL]=1,0,c6c6c6,202020,0
C[FN2]=1,0,202020,ffff9e,0
C[FN3]=1,0,202020,9eff9e,0
C[FN4]=1,0,202020,9eceff,0
C[FN5]=1,0,202020,ff9eff,0
C[FND]=1,0,202020,9effff,0
C[HDC]=0,0,84ff84,202020,0
C[IME]=1,0,a791ff,3a3a3a,0
C[KW1]=1,0,ffff84,202020,0
C[KW2]=1,0,84c1ff,202020,0
C[KW3]=1,0,ff84c1,202020,0
C[KW4]=0,0,8484ff,202020,0
C[KW5]=0,0,8484ff,202020,0
C[KW6]=0,0,8484ff,202020,0
C[KW7]=0,0,8484ff,202020,0
C[KW8]=0,0,8484ff,202020,0
C[KW9]=0,0,8484ff,202020,0
C[KWA]=0,0,8484ff,202020,0
C[LNO]=1,0,c6c6c6,3a3a3a,0
C[MOD]=1,1,c6c6c6,3a3a3a,0
C[MRK]=0,0,202020,c08000,0
C[NOT]=0,0,ff9999,f0fbff,0
C[NUM]=0,0,fdfdfd,202020,0
C[PGV]=0,0,f0fbff,ffe6be,0
C[RAP]=1,0,ff9999,202020,0
C[RK1]=1,0,cccc6a,202020,0
C[RK2]=1,0,cccc6a,202020,0
C[RK3]=0,0,cccc6a,202020,0
C[RK4]=0,0,cccc6a,202020,0
C[RK5]=0,0,cccc6a,202020,0
C[RK6]=0,0,cccc6a,202020,0
C[RK7]=0,0,cccc6a,202020,0
C[RK8]=0,0,cccc6a,202020,0
C[RK9]=0,0,cccc6a,202020,0
C[RKA]=0,0,cccc6a,202020,0
C[RUL]=1,0,c6c6c6,3a3a3a,0
C[SEL]=1,0,202020,fdfdfd,0
C[SPC]=0,0,c6c6c6,202020,0
C[SQT]=0,0,84ff84,202020,0
C[TAB]=1,0,c6c6c6,202020,0
C[TXT]=1,0,fdfdfd,202020,0
C[UND]=1,0,ffc184,3a3a3a,0
C[URL]=1,0,c184ff,202020,1
C[VER]=0,0,ff9999,202020,0
C[WQT]=1,0,84ff84,202020,0
C[ZEN]=1,0,c6c6c6,202020,0

サクラエディタ設定

* キーバインドemacsライクへ

1. ダウンロードした設定ファイルをインポート

http://sakura.qp.land.to/?Customize%2F%C5%EA%B9%C6%2F6

設定 => 共通設定 => キー割り当て => インポート => Emacs.key

 

2. Ctrl + Spaceで選択開始を設定

設定 => 共通設定 => キー割り当て => 識別「選択系」 => 機能「範囲選択開始」 => キー「Ctrl + Space」

 

 

* 色を編集

fish shellをローカルにインストール

1. 下記からfish-3.1.0.tar.gzをダウンロード
https://fishshell.com/

2. 解凍しインストールする
例: ~/fishにインストール

$ tar xzvf ./fish-3.1.0.tar.gz
$ cd ./fish-3.1.0 $ mkdir build
$ cd ./build
$ cmake -DCMAKE_INSTALL_PREFIX=~/fish/ ../
$ make
$ make install

3. fisherをインストールする
https://github.com/jorgebucaran/fisher

$ curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

4. $PATHを通す、起動時にfishをデフォルトシェルに変更

# ~/.profile or ~/.bashrc
export PATH="$PATH:/home/user/fish/bin/"
fish

5. zとbassをインストールする

$ fisher add fisherman/z
$ fisher add edc/bass

6. config.fishを編集する
~/fish/etc/fish/config.fish