C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[4]: VB6で作ったユーザコントロールをVBNET
(過去ログ 135 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 5 記事 (1 - 5 表示)] <<
0
>>
■79433
/ inTopicNo.1)
VB6で作ったユーザコントロールをVBNETに移行したい
▼
■
□投稿者/ ミント
(1回)-(2016/04/01(Fri) 17:55:44)
分類:[VB.NET/VB2005 以降]
こんにちは
VB6で作られたユーザコントロールのプロパティ類を
VBNETのコンバートツールにてコンバートしたところ、
大量のエラーが発生しました。
例:'DrawMode' は 'System.Windows.Forms.ContainerControl' のメンバではありません
:'BorderStyle'は'System.Windows.Forms.ContainerControl' のメンバではありません
いずれも「'System.Windows.Forms.ContainerControl' のメンバではありません」というエラーがほとんどで、
たしかに、MSDNで調べてみてもSystem.Windows.Forms.ContainerControlのメンバには存在してません。
たくさんバグがあるので、まずは修正の方向性を教えてほしいです。
MSDNの記事などみましたが、よくわかりませんでした・・・。
引用返信
編集キー/
編集
■79434
/ inTopicNo.2)
Re[1]: VB6で作ったユーザコントロールをVBNET
▲
▼
■
□投稿者/ daive
(95回)-(2016/04/01(Fri) 19:02:43)
2016/04/01(Fri) 19:07:25 編集(投稿者)
>VB6で作られたユーザコントロールのプロパティ類を
>VBNETのコンバートツールにてコンバートしたところ、
>大量のエラーが発生しました。
極簡単な構造のプログラムは、VB2005 / 2008 のコンバート機能で
上手く動く場合もありますが、
大抵は、コンバート機能を使わずに、手作業で作り直した方が早いです。
1.VB6が動作する環境を確保する。
ライセンス上の問題などで、物理PCが必要な場合:XP 専門 などのキーワードで、XP機を手に入れる
仮想PCで良い場合、VirtualBOX / Hyper-V などで、XPの仮想環境を用意する。
で、VB6-IDE 環境を用意して、動作確認しながら、VB.NETへ書換えていきます。
いまからやるのでしたら、VB2010以後を使うのが、お勧め。
2.コントロール配列を使っている場合は、
例:コマンドボタン
ボタンオブジェクトを配列で確保し、登録していく方法や
魔界の仮面弁士さんが、過去にも説明されていた方法など。
3.フォーム画面 は、作り直した方が早いです。
通信系:232/422/485は、標準comm / PDQcomm/AcitveComm を使っている場合は、
.NETの機能で置換てください。
Active3D を使っている場合は、代替え手段が無いので、
Java-CANVAS を使う、IE限定機能を使う、Flushを使う⇒WEB Browser コントロールへ依存する。
Active3Dの処理だけ、VB6のままとする。(⇒後継会社は、インフラジスティックス・ジャパンだが、後継品が無い)
ADO→ADO.NET に変更しますが、Active-X ADO? コントロールの機能が変わっているので、
慣れる必要があります。
ネットワーク通信系も、.NetFramework の機能で置換えてください。
4.計算方法や、考え方になる部分は、ロジックとして切出し出来るはずです。
切出せ無いようであれば、もともとの作りが悪いです。
5.結論、VB6→VB2005 / 2008 の機能は、少し大きなプログラム以上では、k期待するように、正しくは動きません。
結果、画面は作り直し、正しく書けているロジックは、多少の変更で移植可能、
WindowsAPIに依存した機能は、.NetFramework の対応する機能で置換。
特定メーカーのActive-X に依存している場合は、後継品の有無の確認。
引用返信
編集キー/
編集
■79444
/ inTopicNo.3)
Re[2]: VB6で作ったユーザコントロールをVBNET
▲
▼
■
□投稿者/ ミント
(2回)-(2016/04/03(Sun) 02:09:26)
■
No79434
(daive さん) に返信
daive さん 詳細な回答ありがとうございますっ!
仰るとおり、作りなおしたほうが早いのでは?という状況になっています。
というのもVB6自体の知識が欠けているため、VB6→VBNETへのコンバートに関する記事を読んでも
ちんぷんかんぷんなのです。
VB6の仕組み自体を「知っている前提」で書かれている記事が多いですね。
>5.結論、VB6→VB2005 / 2008 の機能は、少し大きなプログラム以上では、k期待するように、正しくは動きません。
> 結果、画面は作り直し、正しく書けているロジックは、多少の変更で移植可能、
> WindowsAPIに依存した機能は、.NetFramework の対応する機能で置換。
> 特定メーカーのActive-X に依存している場合は、後継品の有無の確認。
結局、こういう方向で進むしかないでしょうか。ハァ・・・
解決済み
引用返信
編集キー/
編集
■79445
/ inTopicNo.4)
Re[3]: VB6で作ったユーザコントロールをVBNET
▲
▼
■
□投稿者/ daive
(96回)-(2016/04/03(Sun) 11:42:02)
2016/04/03(Sun) 11:55:36 編集(投稿者)
> というのもVB6自体の知識が欠けているため、VB6→VBNETへのコンバートに関する記事を読んでも
> ちんぷんかんぷんなのです。
> VB6の仕組み自体を「知っている前提」で書かれている記事が多いですね。
> 結局、こういう方向で進むしかないでしょうか。ハァ・・・
参照サイトは、VB6、VB.NETで、同じ手法が検索できるサイト、
例えば、
jeanne.wankuma.com
dobon.net
VB中学校の旧VB6コンテンツ、新VB.NETコンテンツ
レスキュー花ちゃん
NonSoft :通信系などの、VB6 / VB.NET サンプル
DB関連であれば、
Visual Basic 2010/2008 やさしいADO.NET DBプログラム
と、旧コンテンツ:mdb 系
他、
’
そこで、重要になるのが、元のVB6のコードを確認する環境です。
何か苦労しないでも、VB6が動作するOSは、
Windows XPx32 / Windows Server 2008x32 ( Windows Server 2008R2 は未検証 Win 2008 は延長サポート中です。)
各OS、VB6自体は、MSDN-ライセンスで取得可能、ヤフオクはグレーな物が多いですが、中古品市場で探します。
(MSDN/VisualStudio ライセンスは、WANKUMA同盟さんのサイトからでも、購入可能。)
VB6の各ファイルは、Vxエディタなどの、無料系エディタで開けますが、
メモ帳の使用は避けた方が無難です。(EOF除け機能が無い)
'
終わらないJOBは有りません。
「やりゃいいんだよ、何とかなる」、たぶん、きっと(^^♪
’
以下凹むかもな、書込み。
1.GUIと関連コードは、どのみち作り直し。
特にコントロール配列部分は、オブジェクト使用に変更した方が、後々楽になります。
見てくれだけでない部分の確認には、VB6の開発環境は必須。
2.ロジック部分、正しく作られているコードは、移植可能。
クラス部分は、たぶん実装しなおしが吉。(思想が異なります。)
3.ファイルアクセス部分、.Netframework へ書直します。
MID / SPLIT などは、代替があります。殆どの場合は、苦労しないで、書直しが可能
MID$ など、DBCS コードを引きずった部分は、byte 処理も考慮する。
Shift-JIS/MS-Unicode ⇒ UTF-8 、ソース保存文字コードだけでは無い部分の考慮。
配列に文字列を入れている、Array を使っている場合は、
List(Of T) / List(Of String) 他の使用を検討します。
⇒DataSource に成り得るデータ型にすると、応用、使用で楽ができます。
4.Windows API は、.Netframework に対応機能がある事が多いので、書換。
INI ファイルの扱いなど、どうしてもWindows API であれば、
VB.NET Windows API で検索されると、事例が見つかります。
5.MCI系で、Active-X コントロールは、どうしましょうかねぇ。
代替方法はあるのですが、複数サウンドの同時再生は、面倒かも。
DirectSound 系迄いくほどかどうか。
6.Active-X 系で、非サポート、メーカー後継品無に対しては、
代替機能を探す、自分で実装する、
画面、画像関係では、Directshow で解決できる場合も。
7.Active-X DOC / DHTML 系は、諦めて画面他UIは作り直し。
(使うんじゃなかったと、悔やんだのは何年前だろう)
8.ネットDDE機能(DDEサーバー)など、廃止機能は、代替手段へ書直し。
9.DB系は、ADO⇒ADO.NET、他は、代替手段の調査から。
解決済み
引用返信
編集キー/
編集
■79457
/ inTopicNo.5)
Re[4]: VB6で作ったユーザコントロールをVBNET
▲
▼
■
□投稿者/ ミント
(3回)-(2016/04/04(Mon) 09:44:00)
daiveさん、改めて回答ありがとうございます^^
そもそもVB6を動かす環境がなかったですね。
Win8のPCにVisualBasic6.0を入れて、とりあえず見ている・・・、という感じです。
提示していただいた、参考サイトありがとうございます。
検索しているとヒットするサイトが結構ありますね。やっぱこの辺に絞られてくるのかな。
>以下凹むかもな、書込み。
以下の内容については、「大変だぞ」ということはよくわかりました。
前回の回答でもそうですが、なんとなく方向性を指してくれてありがとうございます。
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-