配列
ネットを見ていると、SafeArrayGetDim のVBA での宣言は、以下のように書かれているのを見かける。 Private Declare PtrSafe Function SafeArrayGetDim Lib "oleaut32" (ByRef psa() As Any) As Long しかし、MSのサイトの C++ 表記では、以下のようになって…
初めに 事前準備 アライメント #pragma pac による要素の配置への影響の確認 pacあり、ダミーメンバーなし pacなし、ダミーメンバーなし pacなし、ダミーメンバーあり pacなし、ダミーメンバーあり2 メモ コード DLL AccessibleFromVBA.h AccessibleFromVBA…
初めに 処理 コード DLL AccessibleFromVBA.h AccessibleFromVBA.cpp AccessibleFromVBA.def VBA 実行結果 DllTestSetArrayV DllTestGetArrayV まとめ 過去掲載分 初めに 前回の予告通り、今回は非配列のVariant型変数に配列を格納して、DLLとの受け渡しをし…
初めに SAFEARRAYに関する追加情報 配列要素のデータ型 引数 主な処理と使用する関数 HRESULTを返す関数の成否判定 SAFEARRAYに格納されている要素のデータ型分類値の取得 配列の次元数の取得 配列の1要素のサイズの取得 指定した次元のインデックスの指定…
SafeArrayRedim を使うと、 非配列のVariant型変数に格納した配列でも、LBoundとかElementsとかの変更ができる。だまって、 ReDim Preserve v(2 To 4) とかすればいいんだけど・・・ ソース Private Type SAFEARRAYBOUND cElements As Long lLbound As Long …
はじめに SAFEARRAY SAFEARRAY構造体 cDims fFeatures cbElements pvData rgsabound 次回予告 過去掲載分 はじめに 前回の文字列の受け渡しでは、VARIANTを使いました。(自分でもびっくり)今回の配列でも、int* とか short* とかを使うのかと思いきや SAFE…
C++のmultimapのように、特定のキーに対し、複数のデータをDictionaryに格納できないか?キー毎にデータ数が異なる場合、最大データ数を求めてから固定長配列を格納するのは無駄だし、実際にデータがいくつ入っているか先頭から当たっていかないとわからなそ…