リソースの文字列(テキストファイル)の読み出し

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
滝の上のマスカット

リソースの文字列(テキストファイル)の読み出し

#1

投稿記事 by 滝の上のマスカット » 14年前

こんにちは、度々失礼いたします。滝の上のマスカットです。

リソースからの画像の読み出しが終わって効率よく、組んでいたのですが。

テキストファイルを使って、コメントを流してみたいなと、思うようになりました。

そこで、いろいろなサイトを見て回ったのですが、LoadResourceやLoadString

というものは見つかったのですが、その使い方がいまいちわかりません。

どう利用したらいいのでしょうか。

naohiro19

Re:リソースの文字列(テキストファイル)の読み出し

#2

投稿記事 by naohiro19 » 14年前

>テキストファイルを使って、コメントを流してみたいなと、思うようになりました。
ニコニコ動画のような文字の処理ですか?

滝の上のマスカット

Re:リソースの文字列(テキストファイル)の読み出し

#3

投稿記事 by 滝の上のマスカット » 14年前

説明が足りなくてすいません。
RPGみたいなのを作っていて、画面の下のほうにコメントを出せたらいいな、と思っています。
表示方法等は、わかっています。
わからないのは、リソースから、テキストファイルを読み込む作業です。
ちなみに、読み込んだ内容は、一行ごとに、配列にし、
後々のコードで、1文字ずつ表示されるようにしていくつもりです。

softya

Re:リソースの文字列(テキストファイル)の読み出し

#4

投稿記事 by softya » 14年前

たしかC++/CLIでフォームアプリですよね。
だったら、こうなります。
http://science.tec-tech.org/index.php?S ... C%2B%2BCLI

滝の上のマスカット

Re:リソースの文字列(テキストファイル)の読み出し

#5

投稿記事 by 滝の上のマスカット » 14年前

↑って、DXライブラリでも、使えますか?

softya

Re:リソースの文字列(テキストファイル)の読み出し

#6

投稿記事 by softya » 14年前

C++/CLIでフォームアプリでDXライブラリ結合は試したことがないので保証はできませんが
http://support.microsoft.com/kb/311259/ja
でchar*型にしてやれば出来ると思います。

それと滝の上のマスカットさんは、C++/CLIでDXライブラリを使うという余り前例の無い使い方をされているので、アイデア的なものは示せますが色々自分で調べて試してもらうしか無いことをご理解下さい。
C言語やC++でもリソースでデータを持つ人自体がとても珍しいですから。

滝の上のマスカット

Re:リソースの文字列(テキストファイル)の読み出し

#7

投稿記事 by 滝の上のマスカット » 14年前

char Bun[9];
LoadString( MAKEINTRESOURCE (samp) , "MYTEXT" , Bun , 200);
を使う感じではだめでしょうか。

もしくは、ファイルの拡張子を変えておいて、それをコード内で変更して、読み込むということでもいいのでしょうか。 画像

softya

Re:リソースの文字列(テキストファイル)の読み出し

#8

投稿記事 by softya » 14年前

少なくとも、TCHARじゃないとマズイのにcharだとか、char Bun[9]; に対して200文字もの読み込みを許可しているとか問題点はたくさんありますね。
UNICODEとSJIS混在の問題がありますので、DXライブラリならまずSJISコードで統一しましょう。そういう意味でもテキストファイルをそのままリソースにした方が後々扱いやすいとは思います。
FindResource()して、LoadResource()、LockResource()してポインタを得るって手順で良いんじゃないでしょうか。

【追記】
ここが参考になると思います。
http://wisdom.sakura.ne.jp/system/winap ... win75.html 画像

滝の上のマスカット

Re:リソースの文字列(テキストファイル)の読み出し

#9

投稿記事 by 滝の上のマスカット » 14年前

でも、後々のことを考えるといま苦労しておいた方がいい気がするんです。

テキストファイルをそのままリソースするってことは、

リソースにファイルを取り込んで、

リソース内からそのファイルを読み出し、

そのファイル内の文字列データを1文字ずつ分解・配列化して保存、

そして、配列を読み出していくってことになるのでしょうか。

何がしたいか、もっと詳しく書くと、

http://homepage2.nifty.com/natupaji/DxL ... am.html#N6

にある、サウンドノベル風の文字表示をリソースを利用してできないか、ということなのですが。

実践中心に基礎をやっていこうと考えているので、ポインタとか初歩的だと思うのですが、

理解できていないんです。

softya

Re:リソースの文字列(テキストファイル)の読み出し

#10

投稿記事 by softya » 14年前

>でも、後々のことを考えるといま苦労しておいた方がいい気がするんです。

苦労は良い場合もありますが、将来的に効率を上げるために苦労すべき事でわざわざ効率を下げるための苦労はしない方が良いと思います。つまり、ストリングテーブル・リソースを使うとデータ追加・変更のたびに苦労するんであまりにも非効率的です。

>テキストファイルをそのままリソースするってことは、
>リソースにファイルを取り込んで、
>リソース内からそのファイルを読み出し、
>そのファイル内の文字列データを1文字ずつ分解・配列化して保存、
>そして、配列を読み出していくってことになるのでしょうか。

テキストファイルをそのままリソースとして扱う場合はexeファイルに組み込まれるので、組込まれているリソースをFindResourceで検索してLoadResourceでメモリに展開、LockResourceでテキストの先頭ポインタを得ます。
この先頭ポインタの指すテキストデータを改行で一行毎に分解しながら表示すればOKです。もちろん、文字列やポインタに関する知識が必要です。あと、この方法なら将来的にテキストを暗号化してゲームのネタバレを防止できる機能も追加できますね。

>実践中心に基礎をやっていこうと考えているので、ポインタとか初歩的だと思うのですが、
>理解できていないんです。

基礎をちゃんとやりたいならポインタは避けるべきでは無いですね。
ただ、C++/CLI的ではない書き方なんで、そこの処は覚えておいてください。今までの話を伺う限り、C++/CLIは必要ないんじゃないかと思いますが、もしかしてリソース管理のためだけに使っています?

滝の上のマスカット

Re:リソースの文字列(テキストファイル)の読み出し

#11

投稿記事 by 滝の上のマスカット » 14年前

>もしかしてリソース管理のためだけに使っています?
リソースの管理のためというよりも、C++/CLI自体をそんなに意識して使っていないので、自分でもよくわかりません。
リソースを使う理由としては、将来、何か作って配布するときとかに、データを読まれにくくするためです。
(暗号化ということも考えているのですが、そこはまだいいかなとおもっています)

softya

Re:リソースの文字列(テキストファイル)の読み出し

#12

投稿記事 by softya » 14年前

>リソースを使う理由としては、将来、何か作って配布するときとかに、データを読まれにくくするためです。

C++/CLIで、.NET的な書き方をしない場合にどんな最適化が行われるかは分かりませんが、.NETの部分は逆コンパイルが容易です。つまりソースコードが解析されやすいです。
あと、リソースはそのままexeファイルに埋め込まれるのでバイナリエディタで開くと書かれた文字は読まれてしまいます。
http://www.vector.co.jp/soft/winnt/util/se230275.html
exe内のリソースを外部に書き出すためのツールってのもあります。
http://www.vector.co.jp/soft/win95/util/se114990.html
なので暗号化しないとリソースにしても効果はさほどありません。
暗号化するなら、結局のところファイルにしても同じなのでリソース化のメリットはさほど無いと思います。

滝の上のマスカット

Re:リソースの文字列(テキストファイル)の読み出し

#13

投稿記事 by 滝の上のマスカット » 14年前

そうですか。
暗号化に関しては、もう少し、先の話になりそうなので、リソースやポインタなど基本的なところを
もっと、やりこんでいきたいとおもいます。
いろいろと、ご教授ありがとうございました。
一旦解決とさせていただきます。

閉鎖

“C言語何でも質問掲示板” へ戻る