最近やっていたプロジェクトのドキメント作成に関わっていたのですが、そのPGを「パッケージ化出来ないか?」といわれ、まずドキメントを手直しするようにと言われました。まずは何から手をつけていけばいいものでしょうか?今のところはまったくわからないので宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

どういうプログラムを、どういうパッケージにするのかが良く分からないですが、



・ソースを読まなくても、ドキュメントだけを読めば使える
・ドキュメントを読めば、実際に「もの」を動かさなくても、何をどうすれば良いか分かる

というところが、基本です。

例えば、関数ライブラリみたいなものであれば、ソースを読んだり、テストプログラムを
書いていろいろ動かしてみたりしなくても、どういう条件なら正常に動作し、どういう
場合なら、どのようにエラーを返す、ということがドキュメントだけで分かる、と
いうことが求められます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qまったく別のプロジェクトに操作を移す

現在、プロジェクトA(以下A)から一定の処理を行うとプロジェクトB(以下B)に移動するというものを作っています。
ですが、そもそもどのようにすれば良いのかが分からずにいます。.showの応用で可能なのでしょうか。

A→(処理)→B
B終了後はAに戻る

上記の流れで構想しているのですが、何か良い知恵はありませんでしょうか。よろしくお願いいたします。

Aベストアンサー

「AからBに移動する」とは、
「A.EXEからB.EXEを呼ぶ」ってことですか?

もしそうなら
shellやHideをヘルプで検索してみたらいいと思いますよ!

QプロジェクトA にて プロジェクトB からの応答を感知したい

OS:win2000pro
VB:VB6.0sp5

プロジェクトA
formA にて 別プロジェクトBを実行

 private sub command_click()
  projectB.exe
  MsgBox "projectB 実行完了"
 end sub

1.projectBの処理がすべて完了したら
 メッセージ「projectB 実行完了」
 を出力したいのでが、どのようにすれば良いのか
 分かりません
  ご教示くださいます様よろしくお願いいたします

2.projectBの処理中にエラー発生時も
 projectA にて感知したいのですが、
 どのようにすればいいのでしょうか?

 初歩的なご質問で申し訳ございません
よろしくお願いいたします

Aベストアンサー

他のexeを起動させるにはShell関数を使う方法とAPIを使う方法があるのですが・・
Shell内で起動しShellの終了を取得してメッセージを表示ではどうでしょうか?
projectB.exeオブジェクトのハンドルを取得させて終了を待ち終了したらメッセージを表示する。

Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long

Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long

Private Const PROCESS_QUERY_INFORMATION = &H400&
Private Const STILL_ACTIVE = &H103&

Private Sub ShellEnd(ProcessID As Long)
Dim hProcess As Long
Dim EndCode As Long
Dim EndRet As Long
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 1, ProcessID)
Do
EndRet = GetExitCodeProcess(hProcess, EndCode)
DoEvents
Loop While (EndCode = STILL_ACTIVE)
EndRet = CloseHandle(hProcess)
End Sub


private sub command_click()
On Error GoTo command_Click

 Dim Ret As Long  

  Ret = Shell("C:\フルパス\projectB.exe", AppWinStyle.Hide)
  ShellEnd (Ret)
  MsgBox ("projectB 実行完了")

  command_Click:
MsgBox Err.Description
Exit Sub

End Sub
試しに貼り付けてやってみてください。

他のexeを起動させるにはShell関数を使う方法とAPIを使う方法があるのですが・・
Shell内で起動しShellの終了を取得してメッセージを表示ではどうでしょうか?
projectB.exeオブジェクトのハンドルを取得させて終了を待ち終了したらメッセージを表示する。

Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long

Private Declare Function GetExitCodeProcess Lib "kernel32" _
(...続きを読む

QPGの仕事内容(VB)

VB4からVB6への移行作業という仕事があるのですが
私はVB6しか経験がありません。
こういう業務はVB4のソースをVB6へ書き直すと思ってよいのでしょうか?
なにかアドバイスを頂きたいと思いまして質問させて
いただきました。

よろしくお願いします。

Aベストアンサー

仕事の発注先に聞きましょう(^^;

 まぁ大抵の場合、大きくは、2通りあります。

 VB4 と VB6 の大きな違いは、対応 OS が変わったことと、凝ったデザインの物が作成出来る様になった事と、多少無理がきくようになったことです。

 その事を踏まえて・・・・。

 移行が、VB4 上で作成されていた物を、そのまま、VB6 で動作(コンパイル)出来る状態にするさぎょうでしたら、殆どが、カット&ペーストで出来ます。GUI 関係で多少の手直しはあるとは思いますが、VB4 のソースを殆どそのまま流用できます。
 しかし、移行作業が、VB6 ライクな作り方に変更するって事になると、VB4 の書き方に寄りますが、全面書換えを覚悟した方が良いでしょう。

 まずは、先方に確認してからですね。

QWindows64BitOSでVB5.0のPG起動

概要
 vb5.0で作成されたプログラムをWindows7 64Bit 環境で起動(ランタイム)させたい
調べた事
 (1)起動するPCにて「プログラム互換ウィザード」の設定が必要
   →これによりWindows7での動作が可能となる
 (2)起動するPCにて勝手に「WOW64」がvb5.0のPGを32BitのPGと判断しエミュレートする
   →これにより64bitでの動作が可能になる
質問内容
 (1)そもそも上記(1)(2)の対応で動作するものなのか しない場合はこまごまとした制約事項
   があるのであればどのような内容なのか
 (2)上記(2)のwow64 という仕組みは vb5.0のPGを32bitとどのように判断しているのか
   また判断させるためにしておかなければならない処理は存在するのか

となります。私の周りではみな「動かしてみて動けば動く」との意見ですが、
「動かしてみて」の部分が曖昧で全てのソースコードを通過するテストは難しく
事前に知りえる問題点を収集したく質問した次第です

Aベストアンサー

解釈が正しくないですね。
正確には、前提条件として「動かない」が、例外として「動く場合もある」というのが正しい解です。
マイクロソフトでは、Windows 7でのVB5.0アプリケーションについて一切の動作を保証していません。
また、VB6.0についても、APIは大方実装されていますが、動作の保証を行っていません。

即ち、VB5.0は動けばもうけもの。VB6.0は一応動く仕組みはあるが、動かない場合があっても、何らかの対処方法を説明することはないというスタンスです。ただし、VB6ベースのコードは、.最新のVBでコードのアップグレードを行なえば、ある程度は自動で最新コードへの最適化が可能です。(ここで最適化が行えない部分に、Windows7 64bit環境で実行に沿わないものが含まれます)

そのため、1に関しては、制約も何もなく、動かない前提で動かすべきということになります。

VB6ベースの場合は、動く前提ではあるが、特定のカーネルドライバを直接キックしたり、自ら設計した独自のAPIを利用する場合は、動作しません。尚、16bitベースのコードは64bitOSでは全面的に(全て)動作しません。

2について、Windows On Windows 64(Bit)は、VB6.0より後に提供されるWin32の共通参照関数群(DLL、OCX)のAPIを、64bitの代替APIに割り当てて実行できます。具体的に言えば、AというAPIがあったとしたら、そのAというAPIと同じ役割を持つ64bitAPIに処理を引き継がせ、処理を実行します。また、独自APIであってもハードウェアに依存しない程度で、ユーザーモードの範囲内で計算などを行うなら引継ぎなしに実行が可能です。

しかし、先に記載したように、Windows 64bitが保持しているライブラリに存在しない外部APIを利用している場合、既に64Bitでは廃止された16bitAPIを利用する場合、カーネルモードで直接ハードウェアをコールすような素行の悪いプログラムやライブラリ、脆弱性やパフォーマンスの問題などによって引継ぎが出来なかったAPIを利用する場合は全て動作対象外となります。

尚、これはVB5におけるルールではなく、VB6より後のバージョンにおける条件です。尚、例外に関するルールが明確に開示されているわけではないので、抽象的な回答であることはご了承ください。

ということです。

個人的な回答をすると、基本的にVB6以前のコードは、設計されたソースがあるなら、最新のVisual Studioにてコードをアップグレード(機械最適化)してみることをお奨めします。それで、適正ではないと判断された箇所については、手作業で最新VBベースソースに修正するのがベストです。
全体的にNGになる場合は、今後も踏まえ設計からやり直した方が良いと思われます。

解釈が正しくないですね。
正確には、前提条件として「動かない」が、例外として「動く場合もある」というのが正しい解です。
マイクロソフトでは、Windows 7でのVB5.0アプリケーションについて一切の動作を保証していません。
また、VB6.0についても、APIは大方実装されていますが、動作の保証を行っていません。

即ち、VB5.0は動けばもうけもの。VB6.0は一応動く仕組みはあるが、動かない場合があっても、何らかの対処方法を説明することはないというスタンスです。ただし、VB6ベースのコードは、.最新のVBでコ...続きを読む

QPGにおいて構造体や列挙型はいつ使いますか?

PGにおいて構造体や列挙型はいつ使いますか?

構造体でテーブルみたいなものに一旦入れて、個別に取り出すときに使うと思うのですが、
DBを使ってたら、構造体を使う場所がよくわかりません。

どういうプログラミング時に構造体・列挙型を使うのか教えてください。

Aベストアンサー

複数の項目を一元管理したいとか、あとで(他人が)見た時に判り易いためとか、使う理由は様々あると思います。

例えば、RPG(ゲーム)のプログラミングで、
キャラクターのパラメーターとしてはHP、MP、ちから、すばやさ、EXP等々ありますね。

これを1つの構造体として定義しておく。

主人公 AS 構造体
仲間1 AS 構造体

のようにすれば、1人1人の各パラメータを宣言する手間が省けますし、
何より見やすいですね。
呼び出すときも、主人公.HP、仲間1.HP となってれば、判り易いです。


人気Q&Aランキング

おすすめ情報