• 締切済み

Visual C# 2008 Express ・・ unsafeコードがうまくいかない

Visual C# 2008 Expressを使っているのですが・・・ unsafeコードを書こうとするとうまくいきません。 ポインタの使い方でエラーになる等というより、 明らかに動作がおかしいです。 例えば・・・ 「新しいプロジェクト」で 「Windowsフォームアプリケーション」を選んで、 まっさらなウィンドウだけ出すアプリを作り、 (勿論、ポインタ操作なんてどこにもない) プロジェクトのプロパティで、 「ビルド」→「アンセーフコードの許可」をONにして、 リビルドすると・・・ デバッガ上では動作する(ウィンドウがでるだけ)のですが、 デバッグなしで実行をすると、ウィンドウも出ずに、 アプリケーションエラーになってしまいます。 何が問題なのでしょうか??

みんなの回答

  • keigo0165
  • ベストアンサー率54% (6/11)
回答No.1

おそらくですが、デバッグ上ではその項目を無視させることにしているだけなので実際にはエラーが起きて動作しなくなるのではないのかと思います。 それかそのエラーが出る原因は文字コードにあるのかもしれません。 ソースコードの中にMessageBoxの記述をしているのならTEXTマクロが原因なのでもう使用する文字コードを変更してやるといいです。 変更の仕方は メニューバーのプロジェクトの中のプロパティを開いてください。 そのなかの構成プロパティの項目を開いて、横に出てくるこうもくに中の「文字セット」の設定を「Unicode文字を使用する」から「マルチバイト文字を使用する」に変更する。 これでたぶんデバッグ上だけではなく実際にも動作するはずです。 プログラミングは結構デバッグとの勝負なので頑張ってください。 自分も始めてウィンドウを出す時にはすごく苦労しました。

Pholiota
質問者

お礼

少し違う現象らしいことがわかってきました。 もう少し調べ直してから、別トピを立てさせて頂きたいと思いますので、 よろしくお願いいたします。

関連するQ&A

  • Visual C++ 2010 Expressについて質問です

    Visual C++ 2010 Expressについて質問です Visual C++ 2010 Expressを用いてopenCVを使ったプログラムを作成したいと考えています そこで、インクルードファイルの設定やライブラリファイルの設定を以下のサイトの通りにしたのですが http://d.hatena.ne.jp/blono/20100501 うまくいきません Visual C++ 2008 Expressでは通っていたものをコピーしてビルドしたところ デバッガをVisual Studio 2005のものを使われようとしていました 上記のサイトではWin32プラットフォームアプリケーションにする場合とありましたが Win32コンソールアプリケーションで実行させたい場合にはどうしたらよいでしょうか? 言葉足らずだとは思いますがよろしくお願いします

  • Visual C++ 2010 Expressについて。

    Visual C++ 2010 Expressについて。 Visual C++ 2010 Expressを使っているのですが、 プロジェクトを開いて1回目ビルドすると必ずエラーが出ます。 ビルドした後1回閉じて開き直してビルドすると正常にビルドできます。 エラー内容 C:\(省略)\ファイル名.vcxproj : error MSB4014: 内部エラーのため、ビルドは予期せず停止しました。 C:\(省略)\ファイル名.vcxproj : error MSB4014: Microsoft.Build.Exceptions.BuildAbortedException: ビルドが取り消されました。MSBuild.exe は、場所 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" に見つからなかったため、子ノードとして起動できませんでした。必要に応じて、BuildParameters または MSBUILD_EXE_PATH 環境変数で正しい場所を指定してください。 と出ます。 原因を色々調べてみたのですが分かりませんでした。 かもしれないということでもいいので答えて頂けると助かります。 環境 XP SP3 Visual Studio 2005が入っています。 ちなみに、2005は正常に出来ます。

  • Visual Studio C++初心者です.

    Visual studio C++ Express Editionを インストールして試しにただフォームに ラベルを付けるだけのプログラムを作って ビルドしてみましたところ プロジェクト : error PRJ0003 : 'cmd.exe' の起動中にエラーが発生しました。 というエラーが出てしまいました. 初心者なのでなにがエラーとなっているのか わからないので教えてください.

  • Visual C++2010 Express

    Visual C++2010 Express でのToString()メソッドについて教えて下さい。 私、Microsoft提供の、Visual C++2010 Expressを利用し、勉強を始めたばかりの超ビギナーです。インターネットで探したある「講座」の「ポインタの学習」で、前後は省略しますが、下記コーディングがありました。   //変数の宣言   int b; //ポインタの宣言   int* a; //ポインタの初期化   a=&b; //内容代入   b=5; label1->Text=(*a).ToString(); 私、コードエディターに入力するときに、(*a)を間違って、*aと入力してしまいました。結果はビルド失敗で、エラーメッセージは、「Form1.h(113):error C2228: ‘ToString’の左側はクラス、構造体、共用体でなければなりません。型は‘int *’です。」とありました。その「講座」には(*a).ToString();については、なぜその様に記述するのか、何の説明もありません。エラーメッセージから*aはクラス、構造体、共用体ではないからということになるのでしょうが、( )を付けるとクラス、構造体、共用体のどれかになるということなのですか?(そういう決まりのなっているのですか?)又、ポインタからToString()メッソッドにアクセスする場合には、全て(*a)のように、( )を付けると解釈しておいて良いのですか? 何方か、初心者にも解りやすくご教授頂ければ、幸いです。

  • Visual Studioのローカルウィンドウについて

    Visual Studio 2008を使ってC++のフォームアプリケーションを作成しています。 デバッグする際に、ローカルウィンドウを使って変数の値を確認すると思うのですが、値が空白でなにも表示されていません。 ほかのプロジェクトでは、正しく動作しています。 同じような現象にあわれた方、なにか御存じの方がいらっしゃればアドバイスをよろしくお願いします。

  • Visual C++ 2005 Express Edition

    Visual C++ 2005 Express Edition をWindows2000SP4で使っていて、今とても困っていることが2つあります。 1つ目は、新しいプロジェクトを作成するときに、win32コンソールアプリケーションを選択し、アプリケーションの設定をするときに、windowsアプリケーションを選択したいのですが、勝手にコンソールアプリケーションが選択され、windowsアプリケーションを選択することができません。どうすれば解決することができるのでしょうか。再インストールも試してみたのですが、何も変わりませんでした。 2つ目は、何度か試したのですがSQL Serverをインストールすることができません。これをインストールしないことで何か問題はあるのでしょうか。 特に1つ目のことで困っています。どちらか片方でもいいので教えてください。よろしくお願いします。

  • visual studio 2015 exe 生成

    visual studio 2015のC++でWin32アプリケーションを作りました。 デバッグしようとしたところ、ビルドエラーが発生して、 「プログラム 'c:¥users¥documents¥visual studio 2015¥Projecst¥Win32project1¥Win32project1.exe'を開始できません。 指定されたファイルが見つかりません」と表示されます。 ソリューションのビルドは正常に出来ます。 そこでprojectのファイルを開いて見たのですが、確かにexeファイルが生成されていませんでした。 特に設定はいじってないです。 どうすればexeファイルが生成されるのでしょうか?

  • Visual Studio 2008(ASP.net) の「デバッグ開始」時間が遅すぎて…

    Visual Studio 2008 (ASP.NET)についての質問です。 プロジェクトを開き、IDEのツールバーの「デバッグ開始」ボタンを押してから、 スタートページに設定したフォームが表示されるまでが、非常に時間がかかると感じています。 具体的な状況として、Visual Stuudio 2003から2008に変換した、あるプロジェクトでは、 「デバッグ開始」ボタンを押してから、30秒ほどでステータスバーに「ビルドが終了した」と表示されます。 それから、スタートページに設定したフォームが表示されるまで、1分ほど時間がかかります。 2008に変換する前の、2003のプロジェクトのときは、ビルドは20秒で終了し、 それから、スタートページに設定したフォームが表示されるまでは、15秒ほどでした。 現状、「デバッグ開始ボタンを押してから、スタートページに設定したフォームが表示されるまでの時間」 を比べると、2003と2008では、3倍ぐらいの差があります。 質問内容は、2008の「デバッグ開始ボタンを押してから、スタートページに設定したフォームが表示されるまでの時間」を、 2003並みに高速化できないか、というものです。 なお、スペック等は下記の通りです。   Visual Studioのバージョン=2008 SP1   言語=Visual Basic   プロジェクト数=2   フォーム数=200個   IISのバージョン=6.0   OS=Windows XP 以上、どうぞよろしくお願い致します。

  • Visual Studio2008 Express Edition c

    Visual Studio2008 Express Edition c#で、簡単なプログラムを書きました。 expressは、インストーラを作れないらしいので、「発行」をして、USBメモリにSETUPを作りました。 プログラムは、プログラムのあるディレクトリに、あるディレクトリがある前提で書かれています。一応、開発時には、プロジェクトのBINディレクトリにそのディレクトリを無理やり作って、動作させました。 SETUPにコレをどうやって反映させればいいのか、教えてください。 普通に何もせずに発行し、インストールすると、 アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。「続行」をクリックすると、アプリケーションはこのエラーを無視し、続行しようとします。 ************** 例外テキスト ************** System.IO.DirectoryNotFoundException: パス 'C:\Documents and Settings\****\Local Settings\Apps\2.0\~~\ディレクトリ名' の一部が見つかりませんでした。 と、エラーが出ます。 詳しい方、よろしくお願いします。

  • Visual Basic .NET で、背景を透明にするには

    Visual Basic .NET で、背景を透明にするには、 「    フォームのプロパティで、      BackColorとTransparencyKeyのプロパティを同一の色(例えばBlack)にする 」 ということだそうですが、やってみると、(動作するのですが、) 画像のない背景部分はBlackのままで、透明になりません。 どうしたらいいのか教えてください。 デバッグ欄に、いくつか、 「     ・・・・・.dll' が読み込まれました。シンボルは読み込まれませんでした。 」 と書かれています。 Visual Basic .NET 初心者です。よろしくお願いします。

専門家に質問してみよう