トップ回答者
VC++ 2010でsecurityExceptionがでる

質問
-
VC++2010でWindowsフォームで新規プロジェクトでプログラムを作ろうとすると新規フォームが開く前に、
書き込みできません。のメッセージと次にSystem.Security.SecurityExceptionのメッセージが出ます。
その後には普通にFormの編集とプログラムの書き込むはできるのですが、ビルドしようとすると以下のエラーで
ビルドしません。原因と対応策を教えて下さい。
1>------ ビルド開始: プロジェクト: ret, 構成: Debug Win32 ------
1> AssemblyInfo.cpp
1> ret.cpp
1> stdafx.cpp
1> コードを生成中...
1> .NETFramework,Version=v4.0.AssemblyAttributes.cpp
1>MSVCURTD.lib(mcrtexew.obj) : error LNK2028: 未解決のトークン (0A00000C) "extern "C" int __clrcall WinMain(struct HINSTANCE__ *,struct HINSTANCE__ *,char *,int)" (?WinMain@@$$J0YMHPAUHINSTANCE__@@0PADH@Z) が関数 "int __clrcall WinMainCRTStartup(void)" (?WinMainCRTStartup@@$$FYMHXZ) で参照されました。
1>MSVCURTD.lib(mcrtexew.obj) : error LNK2019: 未解決の外部シンボル "extern "C" int __clrcall WinMain(struct HINSTANCE__ *,struct HINSTANCE__ *,char *,int)" (?WinMain@@$$J0YMHPAUHINSTANCE__@@0PADH@Z) が関数 "int __clrcall WinMainCRTStartup(void)" (?WinMainCRTStartup@@$$FYMHXZ) で参照されました。
1>c:\users\礼一\documents\visual studio 2010\Projects\ret\Debug\ret.exe : fatal error LNK1120: 外部参照 2 が未解決です。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
回答
-
SecurityException が発生したことによって、プロジェクトファイルが中途半端な状態になっているのかもしれませんね。
プロジェクトのプロパティ、リンカー、詳細設定、エントリ ポイントで「main」が指定されることがプロジェクトテンプレートとしてのデフォルトのようですので、そこは確認していただいた方がよいでしょう。
(空になっていると WinMain を探します)さて、本筋的には SecurityException が出ない解決策を探るべき状況だと考えています。
作成先のフォルダーに依存せずに発生するのでしょうか?
また、SecurityException 発生時に詳細なメッセージは出ていませんか?ヒントになる可能性があります。
すべての返信
-
まず最初にご自身の使用されている言語を把握していますか? 質問タイトルに「VC++」を加えるぐらいなら最初からVisual C++フォーラムを選択すべきです。
次に実際に使用されている言語がC++言語ではなくC++/CLIという実質的には別言語を使用されている自覚はありますか? C++/CLIはC++言語を十分に熟知した上で更に多々の制約の上に成り立っている言語です。少なくともC++言語としてこのエラーメッセージを読み、何を意味しているのか理解できる程度には把握できていないと今後も苦しいだけでしょう。Windowsフォームを使用したいのであれば素直にC#言語を選択することをお勧めします。
その上で、エラーメッセージからWinMain()関数が定義されているように見受けられますが、なぜそのような関数を作成したのでしょうか?
-
SecurityException が発生したことによって、プロジェクトファイルが中途半端な状態になっているのかもしれませんね。
プロジェクトのプロパティ、リンカー、詳細設定、エントリ ポイントで「main」が指定されることがプロジェクトテンプレートとしてのデフォルトのようですので、そこは確認していただいた方がよいでしょう。
(空になっていると WinMain を探します)さて、本筋的には SecurityException が出ない解決策を探るべき状況だと考えています。
作成先のフォルダーに依存せずに発生するのでしょうか?
また、SecurityException 発生時に詳細なメッセージは出ていませんか?ヒントになる可能性があります。