C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[2]: VB.net セーフモード
(過去ログ 114 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 3 記事 (1 - 3 表示)] <<
0
>>
■67673
/ inTopicNo.1)
VB.net セーフモード
▼
■
□投稿者/ 寅
(17回)-(2013/08/23(Fri) 07:46:46)
分類:[.NET 全般]
VB.net 2010 Expressのコンパイルでセーフモードの様なモードありませんか?
多分、プロジェクトのプロパティーを色々いじって居る時に見つけたんでは無いかと思うのですが、今、見てみると見つかりません。
ネットで検索してもヒットしないので、何かを見間違えたのかもわかりませんが。
何が知りたいかと言うと、この質問の一つ下のnewで作ったフォームへのアクセスですか、ひょっとしてVBがアクセス方法が安全で無いのでエラーにしているのかと考えた次第です。それで、プログラマー責任でそれを解除できればコンパイル出来る様になるのではと。
ご存知の方がいらっしゃいましたら宜しくご回答下さい。
引用返信
編集キー/
編集
■67677
/ inTopicNo.2)
Re[1]: VB.net セーフモード
▲
▼
■
□投稿者/ 魔界の仮面弁士
(312回)-(2013/08/23(Fri) 09:42:03)
2013/08/23(Fri) 09:46:02 編集(投稿者)
■
No67673
(寅 さん) に返信
> VB.net 2010 Expressのコンパイルでセーフモードの様なモードありませんか?
C# には「unsafe モード」があったりしますけれどね。
VB のコンパイラオプションで、安全性への影響度の大きい物としては、
(1)整数のオーバーフローチェックを行うか否か
(2)最適化を行うか否か
(3)変数宣言を強制させるか否か
(4)変数の型推論を許可するか否か
(5)暗黙の型変換を許容するか否か
ぐらいでしょうか。
たとえば (1) の設定を施すと、
Dim a As Byte = 200
Dim b As Byte = 100
Dim c As Byte = a + b
MsgBox(c)
というコードの動作が変化します。
整数チェックが有効なら、エラーになる(OverflowException)のですが、
整数チェックを省略すれば、「40」という結果が返されます。
> この質問の一つ下のnewで作ったフォームへのアクセスですか、
「一つ下」という表現は適切ではない気もしますが、これは恐らく
No67667
のスレッドのことですよね。
一応、上記(5) の暗黙の型変換(Option Strict 設定)を許容すれば、
No67675
にも書いたように、「レイトバインド」でのアクセスが許容されます。
'Form2 に Button を貼り、その Button1 の Modifers を Public にしておきます。
Dim f As Form = New Form2()
CObj(f).Button1.PerformClick() '★
★ の箇所の「CObj(f).Button1」の箇所は、Option Strict がオフになっていれば
そのままコンパイルされますが、同設定がオンになっていた場合は
『error BC30574: Option Strict On では、遅延バインディングを使用できません。』
のエラーが発生してコンパイルが通らなくなりますし、Custom設定の場合には
『warning BC42017: 遅延バインディングの解決です。ランタイムエラーが発生する可能性があります。』
の通知がコンパイル時に報告されるようになります(コンパイル自体は行われます)。
引用返信
編集キー/
編集
■67685
/ inTopicNo.3)
Re[2]: VB.net セーフモード
▲
▼
■
□投稿者/ 寅
(19回)-(2013/08/23(Fri) 12:10:52)
■
No67677
(魔界の仮面弁士 さん) に返信
> 2013/08/23(Fri) 09:46:02 編集(投稿者)
>
> ■
No67673
(寅 さん) に返信
>>VB.net 2010 Expressのコンパイルでセーフモードの様なモードありませんか?
> C# には「unsafe モード」があったりしますけれどね。
ひょっとすると同時に見ていたC#のコンパイラーで見たのをVBでみたと勘違いしたのかも知れません。
このモードの(VBでは無い様ですけど)必要性は魔界の仮面弁士 さんにご回答頂いた#67667が解決しましたので、必要なく成りました。
有難うございました。
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-