- 締切済み
VB6.0 →VB2005 のアップグレードでエラー表示
VB6.0の標準モジュールでは Private Type typset a As String b As String c As Integer End Type Public make() As typset と記述してエラーもなく正常なのですが、VB2005にアップグレードしたときに、 Option Strict Off Option Explicit On Module Module1 Private Structure typset Dim a As String Dim b As String Dim c As Integer End Structure Public make() As typset←▼エラー▼ End Module 【エラー内容】 'make' は、module 'Module1' をとおして型 'typset' を namespace 'WindowsApplication1' で公開することはできません。 structure部をPublicなどにしてもエラーは消えますが、参照先に影響が出てしまいます。 根本的な解決方法が分かりません。 教えていただけないでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
この宣言って矛盾していると思いませんか? 型の宣言がPrivateで その型を使った変数をPublicにしている Privateな型なので モジュール内でしか使えない ということは Publicでどこからでも参照可能な変数というのはおかしいでしょう Make(1).a とした場合の メンバーaは本来 他のモジュールやクラス、フォームからアクセス出来てはいけないものではないでしょうか... VB6自体のチェックが甘いのだと思いますよ ...
お礼
ありがとうございます。 私も変だな?とはおもっていたんですけどね、 VB6で正常に起動したことでこういう形式もあるのだなと思っていました。。 >VB6自体のチェックが甘いのだと思いますよ VB6では見つけれなかったエラーがVB2005では見つかることができた。 ということです? なぜVB6では正常に起動したのかはご存知でしょうか?