C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: vb6.0から2010へ


(過去ログ 116 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■68594 / inTopicNo.1)  vb6.0から2010へ
  
□投稿者/ kazu (1回)-(2013/10/30(Wed) 22:50:08)

分類:[.NET 全般] 

VB6.0のコードが書かれた本を買いまして、それを2010で動かしたいのですがエラーばっかりでさっぱりです。当方プログラミングは初心者で、少しづつでも教えていただきたいのでよろしくお願いいたします。以下コードです。

'--------------------------------------------------------------------
'BMP画像を読み込み、csv形式で保存
'保存されたcsv形式データの画像を表示
'2000/10/Oct by T.ONO
'--------------------------------------------------------------------
Option Explicit On
'画素値を求めるAPI関数
Private Declare Function GetPixel Lib "gdi32" ( _
ByVal hdc As Long, _
ByVal x As Long, _
ByVal y As Long _
) As Long
Const PN = 256
Dim rimg(PN, PN) As Integer 'R成分用
Dim gimg(PN, PN) As Integer 'G成分用
Dim Bimg(PN, PN) As Integer 'B成分用
Dim yimg(PN, PN) As Integer '輝度成分用
Private Sub Commandl_Click() 'ピクチャボックス画像から画素値を求め表示
Dim x, y As Long
Dim flev As Long
Dim rlev, glev, blev As Long
For y = 0 To PN - 1
For x = 0 To PN - 1
flev = GetPixel(Picture1.hdc, x, y) 'Picture1の画素値取得
pixval(flev, rlev, glev, blev) 'RGB成分に分解
rimg(x, y) = rlev : gimg(x, y) = glev : bimg(x, y) = blev
Picture2.Pset (x, y), RGB(glev, glev, glev)
Next
Next
End Sub
Sub pixval(ByVal flev As Long, ByVal rlev, ByVal glev, ByVal blev) '24ビット画像データからr,g,b値の取り出し
blev = (flev And &HFF0000) / 65536 '16ビットシフト
glev = (flev And &HFF00&) / 256 '8ビットシフト
rlev = (flev And &HFF&)
End Sub
Private Sub Form_Load() 'ピクチャボックスの初期化
Form1.ScaleMode = 3 'フォームのスケールモードをピクセル
Picture1.BorderStyle = 0 'Picture1のBorderStyleを無し
Picture1.AutoSize = False 'AutoSizeを固定
Picture1.ScaleMode = 3 'Picture1のScaleModeをピクセルに
Picture1.Height = PN 'Picture1の高さ設定
Picture1.Width = PN 'Picture1の幅設定

Picture2.BordeStyle = 0
Picture2.AutoSize = False
Picture2.SclaMode = 3
Picture2.Height = PN
Picture2.Wigth = PN
End Sub
Private Sub menuFileOpen_Click() '画像ファイル(BMP)選択
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
CommonDialog1.Filter = "ビットマップファイル(*.bmp)|*.bmp"
CommonDialog1.ShowOpen()
DoEvents()
Picture1.Picture = LoadPicture(CommonDialog1.FileName)
ErrHandler:
Exit Sub
End Sub
Private Sub menuRGBDisp_Click() '画素データを読み込み表示
Dim x, y, ylev As Integer
OpenAccess GetOpenFileName For Input As #1
For y = 0 To PN - 1
For x = 0 To PN - 1
Input #1,yimg(x, y) 'ファイルから配列に読み込む
ylev = yimg(x, y)
Picture2.PSet(x, y), RGB(ylev, ylev, ylev)
Next
Next
Close #1
End Sub

Private Sub menuRGBFileSave_Click() '画像をcsv形式のデータで保存
Dim x, y As Integer
Open GetSaveFileName For Output As #1
For y = 0 To PN - 1
For x = 0 To PN - 2
Print #1, yimg(x, y); ","; 'csv形式とする
Next
Print #1, yimg(x, y) '行の最後のデータ改行のためカンマを付けない
Next
Close #1
End Sub
Function GetSaveFileName() As String '画像データ保存ダイアログ
On Error Resume Next
With CommonDialog1
.Flags = cdloFNPathMustExist Or cdlOFNHideReadOnly Or cdlOFNOverwritePrompt
.Filter = "画素データファイル(*.txt)|*.txt"
.ShowSave()
DoEvents()
If Err = 0 Then GetSaveFileName = .FileName
End With
End Function
Function GetOpenFileName() As String '画像データ読み込みダイアログ
On Error Resume Next
With CommonDialog1
.Flags = cdlOFNPathMustExist Or cdlOFNHideReadOnly Or_
cdlOFNOverwritePrompt()
.Filter = "画素データファイル(*.txt)|*.txt"
.ShowOpen()
DoEvents()
If Err = 0 Then GetOpenFileName = .FileName
End With
End Function
引用返信 編集キー/
■68595 / inTopicNo.2)  Re[1]: vb6.0から2010へ
□投稿者/ しま (38回)-(2013/10/31(Thu) 03:30:14)
No68594 (kazu さん) に返信
> VB6.0のコードが書かれた本を買いまして、それを2010で動かしたいのですがエラーばっかりでさっぱりです。当方プログラミングは初心者で、少しづつでも教えていただきたいのでよろしくお願いいたします。以下コードです。

貴方が本当に初心者なのなら、VB 6.0 から VB.NET への移植をいきなりやろうとするのはかなり無謀です
VB2010 の本を買って勉強するのがいいと思います
本を買い直すのがお嫌なら DOBON.NET などを参考になさるのもいいと思います
http://dobon.net/vb/dotnet/form/index.html

提示されたコードは Form のものだと思います。
VB2010 でフォームアプリを作成する手順を先ず学んで下さい。
フォームを使ったアプリケーションのプロジェクトを新規に作って、フォームにボタンなどを配置しましょう。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -