-
Notifications
You must be signed in to change notification settings - Fork 128
Closed
Description
内容
Coreの新しいvvm-async-apiでは、voicevox_versionやdefault optionを取得する方法が、関数からDLL埋め込み定数に変更されました。C/C++で取得する場合は、通常の変数と同じように使えます。
しかし、C#で取得する場合、LoadLibrary
とGetProcAddress
を使用する必要がありコード量が増えます。また、 C#の新しいフレームワーク(.NET Core 3.0以降)では、LoadLibrary
とGetProcAddress
はWin32APIであり、クロスプラットフォーム対応する場合にはOSごとに処理を記述する必要があり、さらにコード量が増え複雑になります。LoadLibrary
とGetProcAddress
のクロスプラットフォーム対応版が標準で用意されているようでした。
関数として定義されている場合には、簡単なコードで使用できます。
以前のように、関数として定義されていると嬉しいです。
Pros 良くなる点
C#から使う場合に、簡単なコードでdefault optionを取得できる。
Cons 悪くなる点
構造体の初期値を取得するだけなのに、関数を呼ぶ必要がある。
実現方法
#503 で実装されているので、これを無かったことにする??
VOICEVOXのバージョン
2023/07/26現在のmainブランチ
OSの種類/ディストリ/バージョン
- Windows
- macOS
- Linux
その他
#503 (comment)
での発言にあるように、定数のドキュメントがヘッダーファイルに反映されない問題があります。これも、関数に戻すことで解消されるかと思います。
また、Windowsで使用するためのdllinport定義が自動で作成されない問題もあります。
これも、関数に戻すことで解消されると思います。
Hiroshiba and PickledChair