ページ 11

VB6.0のRnd関数について

Posted: 2009年1月21日(水) 11:19
by バグ
無理だとは思うんですが…

VB6.0のRnd関数で発生するのと同じパターンで、Javaで乱数を発生させたいのですが、何か方法は無いでしょうか?

Re:VB6.0のRnd関数について

Posted: 2009年1月21日(水) 12:09
by たいちう
無理じゃないかもしれないけど、仮にできたとしても労力に見合わないかも。

1.
VB6の乱数のパターンを確認しましょう。
サービスパックなどによって変更があるかもしれないので、
ターゲットのバージョンも確認して同じ環境を作りましょう。

2.
必要な乱数を発生する最小限の実行ファイルを作ります。
この実行ファイルに余分な要素があると、
その分だけ次のステップが面倒になると思う。

3.
Rndはdllファイルの関数を呼んでいると思いますので、
デバッガで追いかけて、ファイル名と関数名を調べます。
VB6のデバッガでは追えないかもしれません。
その場合は、OllyDbg等のより強力なデバッガを使いましょう。
dllの関数を呼んでいなかった場合は、それに応じた対策を見つけてください。

4.
突き止めた関数をJAVAから呼びます。
直接呼ぶよりも、呼び出すための実行ファイルを用意して
間接的に呼ぶ方が簡単かもしれない。

何のために必要なのかを書けば、より良いアドバイスが得られるかも。
っていうか、板違いじゃね?

Re:VB6.0のRnd関数について

Posted: 2009年1月21日(水) 12:50
by バグ
>>たいちうさん
返信ありがとうございます(^-^)

私の書き方がマズかったですね。
知りたい事は、VB6.0のRnd関数のアルゴリズムなんですよ。
何に使うかというと、VB6.0用のアプリを携帯電話用のアプリに移殖するのに必要なんですよ。
同じパターンでないといけないものでして…(^_^;)

VC++と同じかと思っていたら、どうも違うようなんですよね…(VC++のソースはある書籍に載っていました)

どこかで公開とかされているのを知っている、もしくはアルゴリズムを知っているという情報があれば教えていただけないかと思った訳です。

ここの掲示板は言語に関してはそんなに厳密なルールは無かったと思いますが…
まぁ、雑談程度に流しておいてくださいm(__)m

Re:VB6.0のRnd関数について

Posted: 2009年1月21日(水) 13:39
by Mist
これかな?(ソースはCだけど)

http://support.microsoft.com/kb/231847/ja

Re:VB6.0のRnd関数について

Posted: 2009年1月21日(水) 13:51
by バグ
>>Mistさん
ありがとうございました(^-^)
助かりましたm(__)m