質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%

Q&A

解決済

2回答

4310閲覧

【VC++】実行時エラーについての質問です

Reach

総合スコア733

0グッド

0クリップ

投稿2018/05/18 04:21

編集2018/05/18 14:10

VC++ で IEを操作して HTMLの情報を得るコードを 書いております

'System.Windows.Documents.Run' is not a Visual or Visual3D'Exception
という例外が発生し 困っております

拡張機能が影響してる可能性があるとか メッセージも出ました

違うコンパイラ 使った方が いいのでしょうか?

Windows 7
Visual Studio 2017

訂正:エラーではなく 例外でした

[2018/05/18 14:37:27 Warning] NuGet によってインストールされたテスト拡張機能が見つかりません。NuGet サービスは利用できません。テスト アダプター拡張機能がないため、テストが見つからない可能性があります。
[2018/05/18 14:37:27 Informational] ------ プレイリストの読み込みを開始しました ------
[2018/05/18 14:37:27 Informational] ========== プレイリストの読み込みが完了しました (0:00:00.0020001) ==========
[2018/05/18 14:37:29 Informational] ------ テストの探索が開始されました ------
[2018/05/18 14:37:29 Warning] NuGet によってインストールされたテスト拡張機能が見つかりません。NuGet サービスは利用できません。テスト アダプター拡張機能がないため、テストが見つからない可能性があります。
[2018/05/18 14:37:30 Informational] ========== テストの探索が完了しました: 0 が見つかりました (0:00:01.7070977) ==========

ソルーション読み込み時に 上記メッセージが 出るようになりました

ActivityLog.xml で 以下の ERROR が あります

ERROR The color 'Popup' in category 'de7b1121-99a4-4708-aedf-15f40c9b332f' does not exist.

ERROR System.InvalidOperationException: 'System.Windows.Documents.Run' は、Visual または Visual3D ではありません。 場所 MS.Internal.Media.VisualTreeUtils.AsVisual(DependencyObject element, Visual& visual, Visual3D& visual3D) 場所 MS.Internal.Media.VisualTreeUtils.AsNonNullVisual(DependencyObject element, Visual& visual, Visual3D& visual3D) 場所 System.Windows.Media.VisualTreeHelper.GetParent(DependencyObject reference) 場所 Microsoft.VisualStudio.Language.Intellisense.Implementation.GoToDefMouseHandler.IsMouseOverTextView(Point position) 場所 Microsoft.VisualStudio.Language.Intellisense.Implementation.GoToDefMouseHandler.<<OnModifierKeyStateChanged>b__19_0>d.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 場所 Microsoft.VisualStudio.Text.Utilities.GuardedOperations.<CallExtensionPointAsync>d__29.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所 Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)

いろいろ試しているうちに
例画のメッセージが変わり
0x74BDDC82 (oleaut32.dll) で例外がスローされました (IE Control.exe 内): 0xC0000005: 場所 0x036AA240 の読み取り中にアクセス違反が発生しました
になりました

プログラム中以下を何回も呼び出しているのですが

C++

1string get_Char(CComBSTR tmp) { 2 string st = ""; 3 if (tmp.Length() <= 32767 && tmp.Length() >0) { 4 WCHAR str[40000]; 5 swprintf_s(str, L"%s", tmp); 6 SysFreeString(tmp); 7 8 char wStrC[40000]; 9 10 //string st = string(dest.begin(), dest.end()); 11 size_t wLen = 0; 12 errno_t err = 0; 13 14 //ロケール指定 15 setlocale(LC_ALL, "japanese"); 16 //変換 17 err = wcstombs_s(&wLen, wStrC, 40000, str, _TRUNCATE); 18 st = wStrC; 19 20 } 21 return st; 22} 23CComBSTRを string に変換するものですが 24どこに問題があるのでしょうか? 25 26また 例外は 27nline CComBSTR::~CComBSTR() throw() 28{ 29 ::SysFreeString(m_str); 30} 31で止まっています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazto

2018/05/18 04:40

情報が不足しています。提示できる限りでかまいませんのでソースコードと、エラーの内容全文を追記していただけますでしょうか。
kazto

2018/05/18 06:02

NuGetに関する文言は、推測ですがテストを実施するための拡張がインストールに失敗していることが原因と考えられます。例外が発生している件とは無関係です。例外の方について、より詳細な情報の追記をお願いします。
guest

回答2

0

自己解決

C++

1string get_Char(CComBSTR tmp) { 2 string st = ""; 3 if (tmp.Length() <= 32767 && tmp.Length() > 0) { 4 LPCWSTR _lpw = tmp; 5 SysFreeString(tmp); 6 int _convert = 0; 7 _convert = (lstrlenW(_lpw) + 1) * 2; 8 9 //LPTSTR szString = _alloca(_convert); 10 LPTSTR szString = new char[_convert]; 11 12 13 AtlW2AHelper((LPSTR)szString, _lpw, _convert); 14 st = szString; 15 delete[] szString; 16 17 } 18 19 return st; 20}

に置き換え、呼び出し側の SysFreeString の場所を ループの外へ持っていくことで
解決いたしました

投稿2018/05/19 13:02

Reach

総合スコア733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ソルーション読み込み時に 上記メッセージが 出るようになりました

エラーメッセージの内容と、おっしゃるようにソリューションファイル読み込み時のエラー発生とのことですので、ソリューションファイルが何らかの理由により壊れてしまったと推測します。

面倒とは思いますが、イチからソリューションファイルを作り直し、ソースコードはそのまま移動する感じで復元させてみる、という手段が考えられます。

投稿2018/05/18 06:51

kazto

総合スコア7196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Reach

2018/05/18 07:53

プロジェクトを 新規作成し、そこに 既存のファイルを追加という作業で 試みてみましたが やはり 同様の状態でした VC++自体に 問題があるのでしょうか?
kazto

2018/05/18 08:00

そうですか。。。 問題を切り分けるために、いちど、HelloWorldするだけの簡単なプロジェクトを作ってみてはいかがでしょうか。 それで同様のエラーが出るなら、VC++側の問題と言えると思います。 エラーが出なかったら、既存のソースコードに問題があると言えます。
Reach

2018/05/18 08:07

そうですね だめであれば 修復を実行してみます
Reach

2018/05/18 14:12

Hello World!! は 正常でした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問