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

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

ただいまの
回答率

90.53%

  • VC++

    136questions

    VC++ (Visual C++) とは、Microsoft製のC++のための統合開発環境です。

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

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 228

Beginner_ABC

score 4

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>b19_0>d.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 場所 Microsoft.VisualStudio.Text.Utilities.GuardedOperations.<CallExtensionPointAsync>d29.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所 Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)

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

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

```C++
string get_Char(CComBSTR tmp) {
string st = "";
if (tmp.Length() <= 32767 && tmp.Length() >0) {
WCHAR str[40000];
swprintf_s(str, L"%s", tmp);
SysFreeString(tmp);

char    wStrC[40000];

//string st = string(dest.begin(), dest.end());
size_t wLen = 0;
errno_t err = 0;

//ロケール指定
setlocale(LC_ALL, "japanese");
//変換
err = wcstombs_s(&wLen, wStrC, 40000, str, _TRUNCATE);
st = wStrC;

}
return st;
}
CComBSTRを string に変換するものですが
どこに問題があるのでしょうか?

また 例外は
nline CComBSTR::~CComBSTR() throw()
{
::SysFreeString(m_str);
}
で止まっています

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kazto

    2018/05/18 13:40

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

    キャンセル

  • kazto

    2018/05/18 15:02

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

    キャンセル

回答 2

check解決した方法

0

string get_Char(CComBSTR tmp) {
    string st = "";
    if (tmp.Length() <= 32767 && tmp.Length() > 0) {
        LPCWSTR _lpw = tmp;
        SysFreeString(tmp);
        int _convert = 0;
        _convert = (lstrlenW(_lpw) + 1) * 2;

        //LPTSTR szString = _alloca(_convert);
        LPTSTR szString = new char[_convert];


        AtlW2AHelper((LPSTR)szString, _lpw, _convert);
        st = szString;
        delete[] szString;

    }

    return st;
}


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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/18 16:53

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

    キャンセル

  • 2018/05/18 17:00

    そうですか。。。

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

    キャンセル

  • 2018/05/18 17:07

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

    キャンセル

  • 2018/05/18 23:12

    Hello World!! は 正常でした

    キャンセル

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

  • ただいまの回答率 90.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • VC++

    136questions

    VC++ (Visual C++) とは、Microsoft製のC++のための統合開発環境です。