人に聞けない痔の悩み、これでスッキリ >>

VB5.0からVB.NETへシステム移行しなければならないのですが、
(単純に)ソースをコンバートするようなツールはないでしょうか?

聞くところによると、ツールによっては2割程度しかコンバートできなかったりするようで、
ツールと、その性能(何%くらい自動的にコンバートできるか等の注意事項)を教えていただければ幸いです。

A 回答 (1件)

VB5から直接は出来ません。

一旦VB6で開いてVB6のプロジェクトの変換後に.NETに変換する必要があります。

http://www.microsoft.com/japan/msdn/vs/vb6/vb6to …

参考URL:http://www.microsoft.com/japan/msdn/vs/vb6/vb6to …
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

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

QVBとVB.Netについて

 早速質問します、よろしくお願いします。

 これからソフトの勉強をしようと思いますが、Visual Basic Application
(VBA)、Visual Basic(Ver6.0)、Visual Basic.Netとのそ
れぞれの違いを教えてください。
 またこれから勉強するにはどのソフトを勉強すれば良いですか。
 Visual Basic.Netをマスターすれば、VBA、Visual Basic(Ver6.0)も使えるようになりますか。

 また、C言語とC++との違いも教えてください。友人に聞くとC言語はもう古くて最近は殆ど使う人がいないとも聞きましたが、本当でしょうか。
 勉強しやすい言語はどれですか。windowsはどの言語できてるのですか。
 以上、よろしくお願いします。

Aベストアンサー

VB6,VB.NETに限っていればこれからの主流はVB.NETです。
.NETはまだまだ過渡的な部分が多いのと、本当に使いこなせる技術者が少ないために広まっていないのが現状です。
ですがVB6で出来ることはすべてVB.NETで可能ですが、逆はかなり限定されます。
つまり、VB.NETの方がいろいろ作れるということです。
しかし、その分難易度が高いのも確かです。
VB6はとっつき易いということで、一番最初に学習する人が多いようです。
しかし、VB6のみの知識では限界が多いのです。
開発の現場ではVB6しか知らない技術者がVB.NETに移行しようとして失敗しているのもよく見かけます。
VB.NETをマスターすればVBAやVB6も使えるようになるとは思いますが、それは習得の程度によります。
プログラミングの基本を勉強するならC言語からの方がいいと思います。
ただ、Windowsライクなアプリケーションを作りたいならVB6からでも良いと思います。
ただ、C、VB.NETなら無料で始めることも可能ですが、VB6はソフトが高いです。
(VB.NETも無料で始めるのは初心者には敷居が高いですが・・・)

CとC++の違いはC言語をオブジェクト指向に対応させたのがC++です。
C言語は一時期古い言語として業界でも需要が減ったことがあります。
しかし、今はまた多く使われだしています。
これはJAVAやVB.NETには必須なオブジェクト指向を使いこなせる技術者が少ない、逆にオブジェクト指向である必要がない場合が多いからです。
VBAはVBの簡易版でEXCEL,WORDなどのOfficeを操作するのがメインです。

VB6,VB.NETに限っていればこれからの主流はVB.NETです。
.NETはまだまだ過渡的な部分が多いのと、本当に使いこなせる技術者が少ないために広まっていないのが現状です。
ですがVB6で出来ることはすべてVB.NETで可能ですが、逆はかなり限定されます。
つまり、VB.NETの方がいろいろ作れるということです。
しかし、その分難易度が高いのも確かです。
VB6はとっつき易いということで、一番最初に学習する人が多いようです。
しかし、VB6のみの知識では限界が多いのです。
開発の現場ではVB6しか知らない技術...続きを読む

QVB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?

VB6.0で、例:StrConv(Text, vbFromUnicode)とかで使用する、
「vbFromUnicode」(文字列を Unicode からシステムの既定のコードページに変換する)
は、VB.NETでは使用できないようです。(相当する定数はない?)

「vbFromUnicode」と同等の機能を、VB.NETで使用したいのですが、
どうすれば良いでしょうか?

Aベストアンサー

思いっきり、例文に「COM1」と書いてますが、USBに書き換えてくださいね^^;

それとふと思ったのですが
udtReaderWriterModeWithoutEncryption
変数は構造体ですよね?

メンバが
lngPortName
lngBardRate
というのは、型宣言をINTEGERに変換してますよね?

ちょっとばかり不安に思ったので、追記しておきました。

参考URL:http://okweb.jp/kotaeru.php3?q=1257613

Qfrxファイルの役目

VB6の開発環境で、拡張子がfrxというVisual Basic Form Binary Fileが出来ますが、何に使われるのですか?
2台のPCで同じプロジェクトの開発をしている際、frmファイルだけをコピーすると、VBでファイルを開く時エラーになることがあります。
frxファイルも同時にコピーする必要があるのでしょうか?
2台のPCのOSは、Win2000とWinXP ProSP2で、XPから2000へコピーした際は問題なく、2000からXPへコピーした際のみ、上記の問題が発生します。
よろしくお願いします。

Aベストアンサー

「ほげ.frm」
「ほげ.frx」
があったとします。

「ほげ.frm」をテキストエディタで開いてみてください。
どこかに「ほげ.frx」の記述が存在していたら、その「ほげ.frm」は「ほげ.frx」を必要とします。

主に、拡張コントロールのプロパティ情報が記載されています。
W2K←→XPsp2
のコピーに関しては、本来どちらもいけると思うのですが、、、
VBのサービスパックや、何かの拡張コントロールのサービスパックが異なっていたりしませんか?

QWindows7にvb6をインストールしようとすると、「このプログラム

Windows7にvb6をインストールしようとすると、「このプログラムには既知の互換性の問題があります」と表示されます。
【オンラインで解決策の有無を確認する】ボタンがあるので、それを押すと「Visual Studioの解決策が見つかりません」のメッセージが表示されます。
このプログラム互換性アシスタント画面には、【プログラムを実行する】ボタンもあるので、メッセージ表示を無視してインストールを実行してしまっていいものなのでしょうか?

Aベストアンサー

インストールして大丈夫です。

私がインストールした時は最初失敗しましたが、かまわず再インストールしたらインストールできました。

ほぼ正常に働いています。

日本語入力の時にちょっと挙動不審な時がありますが、その時は別なテキストエディタでそちらに日本語入力し、コピペしています。

VB6はSP6がありますから、SP6もインストールしてください。

また、Windows Update で、「設定の変更」で「推奨される更新プログラム」と「Windows Update」にチェックを入れ、「更新プログラムの確認」を実行してみてください。

表示された一覧の中にVB6関係があったら(あったかどうか覚えていませんが)インストールしておいた方がいいでしょう。

なお、Windows7 はVB6のランタイムライブラリーは標準でインストールされています。

QVBの「As String * 128」とは?

VBの「As String * 128」とは?

Visual Basic 2010 Expressでコンソールアプリケーションを作成しています。

OSのヴァージョンを取得する機能を作成したかったので、

http://hanatyan.sakura.ne.jp/vbhlp/Version.htm

を参考にして、OSVERSIONINFOの構造体を定義しました。

しかし
szCSDVersion As String * 128

「* 128」
の部分で、ステートメントの終わりを指定してくださいとエラーが出ます。

「* 128」とは、いったいどういう意味ですか?

また、エラーを無くす方法はありますか?

いろいろ検索しましたが、調べ方が悪いのか、分かりませんでした。

よろしくお願いします。

Aベストアンサー

参考にされたサイトはVB6.0用のソースですね。
VB6.0とVB2010(=VB.NET)は色々な部分が変わってますので、VB.NET用のサンプルを見た方が良いと思います。

http://dobon.net/vb/dotnet/system/osversion.html

ちなみに一応、質問に答えると…

> 「* 128」とは、いったいどういう意味ですか?

VB6.0(VB2010の5世代前のバージョン?)で固定長文字列を表す定義です。
* 128と記述すると128文字以上の文字列を入れても自動的に128文字でカットされます。

> また、エラーを無くす方法はありますか?

VB2010(=VB.NET)では以下のように記述します。
<VBFixedStringAttribute(128)> Private szCSDVersion As String

QVB6の開発環境確認

Visual Basic関係の開発環境についてよく解っていません。
初心者です。
教えてください。

VB6で開発されたプログラムというところまでは判っているのですが、どの.NETFRAMEWORKのバージョンで開発されたかの確認をしたい場合、どのファイルを開くか、参照をすればいいでしょうか?
ちなみにソリューションファイルがありません。

宜しくお願いします。

Aベストアンサー

Visual Basic 6.0 は、 .Net の Visual Basic .Net とは別系統のプラットフォームです。
Visual Basic 6.0 は .Net 環境以前の開発プラットフォームです。つまり、i386 アーキテクチャの CPU に対応したネイティブアプリケーション開発環境です。
VB の歴史を簡単にまとめると

1991年 VB 1.0 初出荷
1992年 Windows 3.1 初出荷
1998年 VB 6.0 初出荷(Visual Studio 6.0)
2002年 Visual Basic .Net 出荷( .Net Framework 1.0 )
2005年 VB 6.0 メインストリームサポート終了
2008年 VB 6.0 延長サポート終了

と、まあ、VB 6.0 は 16 ビット OS の Windows 3.0 時代から(正確には、 MS-DOS の Basic 時代を引き継いでいる)の歴史を引き継いだ開発環境です。
この歴史も VB 6.0 でようやく終わりました。 VB 6.0 の開発者は .Net Framework の Visual Basic .Net に引き継がれ、すべてが万事うまく・・・いっていたら良かったのですが・・・。
VB 6.0 と Visual Basic .Net は言語仕様は配慮されていました。
それだけでした。既存のコードはまったく互換性が無く、行き場を失ったコードが停滞しています。
既存のコードを Visual Basic .Net で再開発するなんてことをお気楽にできるはずがなかったのです。

まあ、 NEC の PC98シリーズや DOS のアプリケーションや COBOL が生き残っているのと同じ状況です。 i386 (x86) アーキテクチャの CPU も当分、絶滅するようなことはないでしょう。( .Net Framework は 脱 i386 アーキテクチャ、Go RISC アーキテクチャのための布石でもあるのでしょう)

さて、本題ですが、要するに、「VB 6.0 のアプリケーションの再開発や保守を依頼されたが、 Visual Basic 20XX で開けないんですけど・・・」という状況ですよね。(たぶん)
VB 6.0 の保守を行うには、 Visual Basic 6.0 を使います。(1998年製のソフトウェアです)

開発環境は Windows XP か Windows 2000, Windows Me, Windows 98 SE あたりがサポートされる OS のはずです。
最新の Windows 8, Windows 7, Windows Vista では不具合が出る可能性があります。
Windows Vista 以降は *.hlp ファイル(古いヘルプファイル)などがサポートされていないようですので Windows XP 以前をおすすめします。(追加のインストールやレジストリ設定の変更、互換モードの利用などが必要になるかもしれません。)

幸いにも、下記のMSDN からダウンロードできるようです。

>日本語版 Visual Basic 6.0 提供再開に関するご案内
>現在、日本語版 Visual Basic 6.0 は MSDN サブスクライバ ダウンロード サイトよりご利用いただけます。
>更新日: 2010 年 4 月 13 日
http://msdn.microsoft.com/ja-jp/subscriptions/dd179306.aspx

最新の開発環境は無料で提供しても(Express)、古い開発環境は有料な感じなのはしゃくぜんとしませんが、まあマーケティング的に仕方ないですね。

Visual Basic 6.0 は、 .Net の Visual Basic .Net とは別系統のプラットフォームです。
Visual Basic 6.0 は .Net 環境以前の開発プラットフォームです。つまり、i386 アーキテクチャの CPU に対応したネイティブアプリケーション開発環境です。
VB の歴史を簡単にまとめると

1991年 VB 1.0 初出荷
1992年 Windows 3.1 初出荷
1998年 VB 6.0 初出荷(Visual Studio 6.0)
2002年 Visual Basic .Net 出荷( .Net Framework 1.0 )
2005年 VB 6.0 メインストリームサポート終了
2008年 VB 6.0 延長サポート終了

と...続きを読む

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

QForm_Load と Form_Activate のタイミング

あるデータ入力アプリを作っています。
親フォーム(Form0)で番号を決め、子フォーム(Form1,Form2,Form3,Form4) でデータ入力し、それぞれの子フォームを出るとき(Unload Me) に、変数にsaveしています。それを親フォーム(Form0)で登録を選択したとき、入力データをチェックしてDBに格納しています。
すでにDB格納済のデータの場合、親フォームでDBから変数に読み込み、子フォームのForm_Loadで展開しています。
そこで困っているのは、親と子のフォームを行き来するときにデータの表示で前のが残っていたり、消えてしまったりします。
Form_LoadとForm_Activateを通過するタイミングが、ちゃんと理解できていないためコードの記述位置が不適切なのだと思います。

Form_Load と Form_Activate の実行タイミングについて、お教えください。

Aベストアンサー

Form_Loadは、フォームがロードされたときです。
ロードされる条件は、
1.フォームがスタートアップに指定されているとき、アプリが実行された直後。
2.Show メソッドが呼ばれたとき
3.Loadメソッドが呼ばれたとき
4.フォームに貼り付けられたコントロールのプロパティが参照されたとき
5.フォームに貼り付けられたコントロールのメソッドが呼ばれたとき
です。

ただし、一度ロードされると、Unloadされるまで呼ばれません。


Form_Activateは、フォームがアクティブになったとき、つまり、キャプション(ウィンドウのタイトルバー)の色が変わったときです。

QVB6(SP5)+OO4OでCreateObjectが失敗する

上記の環境でプログラムを作成しています。
Windows2000ではうまくいきました。
WindowsXP(Professional)で失敗します。

Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase(C_ORACLE_TNS, C_ORACLE_USER & "/" & C_ORACLE_PASS, 0)

のようなコーディングでCreateObjectのところで失敗しエラーとして429 ActiveX コンポーネントはオブジェクトを作成できません。
というのが発生します。

Oracleのバージョンは9iでそのクライアントパック9.2.0.1.0を管理者モードでインストールしています。
もちろんOO4Oはインストールされていますし、VBの参照設定でOracle InProc Server 4.0 Type Libraly を追加しています。

何度か再インストールなどしましたが全く同じです。何がいけないのでしょうか?直接回答でなくてもヒントでも何でも教えてください。

なおSQL Plusでテーブルの参照はできています。

上記の環境でプログラムを作成しています。
Windows2000ではうまくいきました。
WindowsXP(Professional)で失敗します。

Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase(C_ORACLE_TNS, C_ORACLE_USER & "/" & C_ORACLE_PASS, 0)

のようなコーディングでCreateObjectのところで失敗しエラーとして429 ActiveX コンポーネントはオブジェクトを作成できません。
というのが発生します。

Oracleのバージョンは9iでそのクライアントパッ...続きを読む

Aベストアンサー

通常は正しく削除されてしかるべきなのでしょうが、レジストリにキーが残った状態になることもありますので
・・・
完全削除についてはリリースノートにも記載されております。

Oracle9i Client for Windows インストレーション・ガイド リリース2 (9.2.0.1.0)(2002/8/7)
「オラクルコンポーネントのインストール」「oracleコンポーネントとサービスの削除」

参考URL:http://otn.oracle.co.jp/document/products/oracle9i/920/windows.html

Q【VB6】実行ファイルとした後、コード閲覧は不可能に近いか

お世話になっております。

Visual Basic 6にてあるプログラム(ソフト)を作成し、
動作確認して、安定して使えるようになった後、
実行ファイル(EXEファイル)作成しようとしております。
普通にVB6の機能で実行ファイルを作成予定。
このソフトをいろいろな人に配布する場合を考えます。

この場合、ソフトを受け取った第三者はコードを閲覧することは一般的に言って不可能に近いでしょうか。その点を知りたいと思っております。

おそらく不可能ではないと思いますが、通常のソフト環境で通常の努力では不可能なのかどうかを知りたいのです。

当方でこしらえているツール(プログラム)は特殊なノウハウもなく、見られても問題もないのですが、閲覧ができてしまうのかどうか、見られるというのはあまり気持ちのよいものではないだろうという意味です。

一方では、良いソフトを手に入れた場合、どのようにコード記述しているのか知りたい、容易にコード閲覧できれば便利だろうというのもあります。

つまり、コード閲覧の困難さの程度が知りたいのです。

よろしくお願いいたします。

お世話になっております。

Visual Basic 6にてあるプログラム(ソフト)を作成し、
動作確認して、安定して使えるようになった後、
実行ファイル(EXEファイル)作成しようとしております。
普通にVB6の機能で実行ファイルを作成予定。
このソフトをいろいろな人に配布する場合を考えます。

この場合、ソフトを受け取った第三者はコードを閲覧することは一般的に言って不可能に近いでしょうか。その点を知りたいと思っております。

おそらく不可能ではないと思いますが、通常のソフト環境で通常の努...続きを読む

Aベストアンサー

コード閲覧といったときの「コード」とは何を言っておられるかによって異なります。

EXEファイル自体のコードは、バイナリエディタやダンプ出力プログラムがあれば、誰でも容易に見ることができます。但し、それの意味がわかるのは、機械語の知識がある人に限られます。機械語の知識がある人が時間をかけてコードを見れば、そのプログラムのアルゴリズムを知ることはできます。ただし、非常に面倒な作業ですので、よほどの価値がなければ、あるいはよほどの好奇心がなければ、そのようなことをする人は非常に限られるでしょう。

元のVisual Basicのコードを見れるかどうかというと、これは、一般論としては、完全に元通りのコードを復元できるとは限りません。

但し、いわゆるリバースエンジニアリングの技術を使えば、ある程度は、そのプログラムのアルゴリズムを高級言語に変換することは可能です。そのコードを読めば、機械語を直接解読するよりはプログラムのロジックを理解することは比較的容易です。

例えば、リバースエンジニアリング技術の具体例は、リバースコンパイラ(日本語では逆コンパイラとも呼ばれる)といったツールです。「逆コンパイラ」で検索すればいろいろ出てきます。

市販ソフトの中には、使用許諾契約においてリバースエンジニアリングの適用を禁じているものもあります。但し、このような契約条項が有効かどうかは法律的に微妙であると聞いたことがあります(このあたりの詳しい法律論まではわかりませんが)。

なお、「見られるというのはあまり気持ちのよいものではないだろうという意味です。」と書かれていますが、コンピュータプログラマの中には、自分の書いたコードを積極的に見せたがる人もいます。プログラムを書くことも、表現活動の一種ですので。

コード閲覧といったときの「コード」とは何を言っておられるかによって異なります。

EXEファイル自体のコードは、バイナリエディタやダンプ出力プログラムがあれば、誰でも容易に見ることができます。但し、それの意味がわかるのは、機械語の知識がある人に限られます。機械語の知識がある人が時間をかけてコードを見れば、そのプログラムのアルゴリズムを知ることはできます。ただし、非常に面倒な作業ですので、よほどの価値がなければ、あるいはよほどの好奇心がなければ、そのようなことをする人は非常に限...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報