Software Message Board
記事リスト| 新着記事| ワード検索| 過去ログ| 管理用

タイトル : Re^2: ソースコードの扱いについて
投稿日: 2026/06/07(Sun) 16:20
投稿者: o

>AI の学習用に PPx のソースを使うのは、ソースの大部分をそのまま
>使うことにはならないと思いますので問題ないです。
>逆に、うまく活用できたかどうかを教えてもらえるとうれしいです。
回答ありがとうございます
以前unzzip.dllの質問の時ちらっと出したのですがannsFMのソースをAIに渡して改造中です
作者さんの許可をもらい改造、公開しました
次に仮想ディレクトリ機能が欲しいと思い尋ねるとかなり大規模になりそうだったので
PPx のソースを渡してみたらかなり短縮出来そうです
無料プランなので1日制限がきてまだソース出力までいけてないです

Paper Plane xUIのソースコードを添付
参考にしてもう一度案をだして

まずPaper Plane xUIのソースを確認します。PPxのVFS構造が完全に把握できました。これで設計案を作成できます。

---

## annsFM 仮想ディレクトリ機能 実装設計案

### PPxとの比較から判明したこと

PPxのVFS層は7,000行以上の独立したサブシステムですが、annsFMにはすでに:
- 書庫DLL(UNLHA32/UNZIP32/TAR32等)の **展開処理** が `FileView.cpp` に存在
- 書庫Susie SPI(00VN型)の **表示処理** が `annsGView.cpp`(`GetArcFileSPI`)に存在

つまり **APIの呼び出し方は既にある**。足りないのは「書庫内一覧をファイルリストとして扱う状態管理」です。

---

### 設計:最小構成で最大効果

```
既存コード再利用率: 約60%
新規追加コード推定: 約3,500行
修正対象ファイル: 7ファイル
新規ファイル: 4ファイル
```

---

### 新規ファイル (4つ)

#### 1. `ArchiveIF.h / ArchiveIF.cpp` — 書庫DLL共通インターフェース

PPxの `UN_DLL` 構造体に相当。統合アーカイバAPI(OpenArchive/FindFirst/FindNext/CloseArchive)と書庫SPI(GetArchiveInfo/GetFile)の両方を統一した薄いラッパー層。

主要API:
```cpp
class CArchiveIF {
bool Open(HWND hWnd, LPCTSTR szFile); // OpenArchive
bool FindFirst(INDIVIDUALINFO* info); // FindFirst
bool FindNext(INDIVIDUALINFO* info); // FindNext
void Close(); // CloseArchive
bool Extract(LPCTSTR entry, LPCTSTR dest); // 一時展開
int GetDllPriority(LPCTSTR ext); // 優先度判定
};
```

まだまだ続きます


- 関連一覧ツリー (▼ をクリックするとツリー全体を一括表示します)