親牛の開発日記

ぼけ防止するため、開発メモを残そう

Windows Shell 開発覚書

■パスからITEMIDLISTを取得するには SHParseDisplayName 例:「c:\temp\my.txt」ファイルのITEMIDLISTを取得するとしよう LPITEMIDLIST pItemIDLIST = NULL; HRESULT hr = SHParseDisplayName(file, NULL, &pItemIDLIST, 0, NULL); if (SUCCEEDED(hr)) { CoT…

COM開発の覚書

#2019/06/18 ◎IStream ■メモリから直接作成 ・CreateStreamOnHGlobal ■BYTE配列から作成 ・SHCreateMemStream ■既存ファイルから作成 ・SHCreateStreamOnFile (Ex)

勘のまましてはいけないこと>>>>C# ulong vs VC ULONG

勘のままだと、両方同じサイズを持つものだ。実は間違いました。 docs.microsoft.com C# の ulongは8バイトであり、 VCのULONGは unsigned long であって、4バイトでした。 ちなみに DWORD = ULONG = unsigned long

CreateFileでAVStream minidriverから HANDLEの取得方法

マイクロソフトさんのドライバサンプルを例にする github.com ドライバに「コマンド(IOCTL)」を送る(DeviceIoControlを利用)際に、予め「CreateFile」で対象ドライバのハンドル(HANDLE)取るべき。 CreateFileの1つ目の引数にドライバから公開した「Sym…

Javaアプリのリソースファイル(データ)を取得する際にリソースパスについ

・リソースの取得 すべてのJavaアプリに対し、下記3つのリソースがあれば src main java com pkg Main.java main.properties resources template 1.html my.properties それぞれの取得に以下のパスで行う。 ・main.properties ClassLoader.getSystemResourc…

Visual Studio CodeでNODE-REDのデバッグ方法

NODE-REDのインストールは、 github.com で書いてある「Developer」方法でスラスラやればいい。 もちろん誰よりも先にNodeJSのインストールを済ませる。 NODE-REDを起動する際に以下のコマンドラインで行ってください。 <node-red実施にインストールされたフォルダ>$ node --inspect-brk red.js ※ポイン</node-red実施にインストールされたフォルダ>…

C#から文字列の配列をC/C++ DLLへの渡し方

■ネイティブ関数の引数が「char**」の場合 C関数 void init(int argc, char** argv); C# [DllImport("XXXXX.dll")] public static extern int init(int argc, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex =1)]string argv); これは無難だろう ■ネイテ…

JAVAのNative開発(JNI)もろもろ注意

■2番目の引数って何? Javaから呼び出されるjni関数は、だいたい以下の形式になっている jxxxxx Java_package_name_クラス名_メソッド名(JEnv*, j???, メソッド引数) 中には2番目の引数(j???)は、Java側のメソッドの宣言によって型が変わってくる 例 pri…

Android Studio 開発メモ Javahとの連携

Android Studio 開発メモ