空腹おやじのログと備忘録

VBA(主にExcel)でいろいろな実験的な事とか、Linuxのコマンドとか設定とかについて忘れないように、あれこれと・・・

C++

【C++】Windowsをシャットダウン or サスペンド させる

スタートメニューを辿っていくのが面倒だったので、 実行ファイルを作って、デスクトップにショートカットを作ることにしました。環境 Windows 10 Home 64bit Visual Studio Community 2019 #include <Windows.h> #include <iostream> using namespace std; BOOL EnablePrivileges</iostream></windows.h>…

【C++】フォルダ内のファイル一覧取得(エクスプローラー風ソート)

前置き コード 実行結果 参考 前置き C++で、FindFirstFileEx を使って、ファイルを取得。 エクスプローラー風に、数字が綺麗に昇順になるようにソートする。 サブフォルダは、除外。 コード #include <iostream> #include <vector> #include <algorithm> #include <string> #include <Windows.h> #include <shlwapi.h> /</shlwapi.h></windows.h></string></algorithm></vector></iostream>…

【C++】Twitter のお題 「魚の数を数えろ!」を正規表現を使って解いてみた

ゴールデンウィークに行われた、Twitter のお題 「魚の数を数えろ!」 「魚の数を数えろ! 蟹バージョン」 を今更ながら、C++で正規表現を使って解いてみた。物足りない人向けに、ちょっと難易度を上げたアレンジ問題を。タラバガニ毛ガニタラバガニ毛ガニ越…

ExcelのVBAで使えるDLLを、C++(Visual Studio 2017)で作る。・・・その6 デバッグ編

初めに キーワード アタッチ デタッチ 実際にやってみる 操作の流れ アタッチ ブレークポイント ステップイン ステップオーバー ステップアウト 続行 デバッグの停止 全てデタッチ プロセスに再アタッチ ウォッチ 自動変数 ローカル メモリ 主なショートカッ…

ExcelのVBAで使えるDLLを、C++(Visual Studio 2017)で作る。・・・その5 構造体の受け渡し

初めに 事前準備 アライメント #pragma pac による要素の配置への影響の確認 pacあり、ダミーメンバーなし pacなし、ダミーメンバーなし pacなし、ダミーメンバーあり pacなし、ダミーメンバーあり2 メモ コード DLL AccessibleFromVBA.h AccessibleFromVBA…

ExcelのVBAで使えるDLLを、C++(Visual Studio 2017)で作る。・・・その4.3(非配列Variant型変数による配列受け渡し編)

初めに 処理 コード DLL AccessibleFromVBA.h AccessibleFromVBA.cpp AccessibleFromVBA.def VBA 実行結果 DllTestSetArrayV DllTestGetArrayV まとめ 過去掲載分 初めに 前回の予告通り、今回は非配列のVariant型変数に配列を格納して、DLLとの受け渡しをし…

ExcelのVBAで使えるDLLを、C++(Visual Studio 2017)で作る。・・・その4.2(配列編)

初めに SAFEARRAYに関する追加情報 配列要素のデータ型 引数 主な処理と使用する関数 HRESULTを返す関数の成否判定 SAFEARRAYに格納されている要素のデータ型分類値の取得 配列の次元数の取得 配列の1要素のサイズの取得 指定した次元のインデックスの指定…

ExcelのVBAで使えるDLLを、C++(Visual Studio 2017)で作る。・・・その3.2(String型による文字列の受け渡し)

初めに BSTR 構造 メモリ管理 ポインタを介してのデータの書き換え 内部のデータ文字列の状態 ヘッダ 関数 SysAllocStringByteLen SysAllocString SysAllocStringLen SysFreeString SysStringLen SysStringByteLen SysAllocStringとSysAllocStringByteLenの…

ExcelのVBAで使えるDLLを、C++(Visual Studio 2017)で作る。・・・その4.1(配列 準備編)

はじめに SAFEARRAY SAFEARRAY構造体 cDims fFeatures cbElements pvData rgsabound 次回予告 過去掲載分 はじめに 前回の文字列の受け渡しでは、VARIANTを使いました。(自分でもびっくり)今回の配列でも、int* とか short* とかを使うのかと思いきや SAFE…

ExcelのVBAで使えるDLLを、C++(Visual Studio 2017)で作る。・・・その3(文字列の受け渡し)

その1、その2と書いたものの 1年以上放置して、いまさらの第3段。今回は、文字列の受け渡しです。 初めに 文字列を受け渡しするためのデータ型 VARIANT型 vt bstrVal pbstrVal 関数 DLL側でのVARIANT内部形式の判断 VARIANTの文字列の変換 VARIANT→BSTR …

ExcelのVBAで使えるDLLを、C++(Visual Studio 2017)で作る。・・・その2

次回予告までしておきながら、他にVBA関係の記事を書いていたこともあり、既に2ケ月以上が過ぎ、 「いつ頃までに、まとめられるかは、不明・・・」の記載通りになってしまった。前回も書きましたけど、64bit版のVBAではどうなるかわかりませんので!!!今…

ExcelのVBAで使えるDLLを、C++(Visual Studio 2017)で作る。・・・その1

ExcelのVBAでもそこそこの事は出来るけれど、C++で処理したい事があって「DLLにしちゃえ」と思ったはいいが、いろいろと忘れて(いや、覚えてないから忘れられないだろうorz)作るのが大変だったので、まとめてみることにした。 とりあえず、今回は、何もし…