fc2ブログ

VisualStudio2019をインストールしたらSpy++がインストールされていなかった

emotionサイトトップ >Visual Studioメモ
emotionサイトトップ > Visual Studioメモ >VisualStudio2019をインストールしたらSpy++がインストールされていなかった

他アプリを遠隔操作するアプリを開発する時に絶対に必要なSpy++ですが、
引っ越し先PCにVisualStudio2019をインストールしたら、Spy++がありませんでした。

個別で指定してインストールする必要があるみたいです。

マイクロソフトのサイトからVisualStuidoのインストーラーをダウンロードして
https://visualstudio.microsoft.com/ja/downloads/?rr=https%3A%2F%2Fdocs.microsoft.com%2Fja-jp%2Fvisualstudio%2Finstall%2Finstall-visual-studio%3Fview%3Dvs-2019

ms2019_spy_01.png
インストーラーが起動したら、【個別のコンポーネント】タブを選択して

ms2019_spy_02.png
かなり下の方にある【C++コア機能】にチェックを入れてインストールします。

ms2019_spy_03.png
VisualStudioにSpy++が追加されました。
これで色々と悪さが出来ます・・・うっしっしw
単純にMicrosoftEdgeの起動場所が勝手に変わってしまって、ブラウザを起動するとメインディスプレイ以外に表示されてしまう為、
強制的にメインディスプレイにブラウザを移動するプログラムを作成しようしただけです。
しかもタスクバーでEdgeを右クリックして【移動】を選択しても移動出来ない不具合が・・・
全てのモニタの電源を入れている時のいいのですが、常時全てのモニタを表示しているわけではありませんからね。
ちなみにこの不具合は2年以上放置されているので、修正される事は無いと判断したので補正アプリを自作しようかと。


プロジェクトの.NET Frameworkのバージョンを変更する

emotionサイトトップ >Visual Studioメモ
emotionサイトトップ > Visual Studioメモ >プロジェクトの.NET Frameworkのバージョンを変更する

Taskの一部のメソッドが参照出来なくてコンパイルさえ出来なかった原因がフレームワークのバージョンが古過ぎた事が分かって新しいバージョンのフレームワークをインストールをしたものの、
プロジェクト作成時に指定していた古いフレームワークから新しいフレームワークに変更したいのに・・・
設定変更場所が見つからないw

FW180324.png
ソリューションエクスプローラーのプロジェクト名部分で右クリックして、プロパティをクリック。
(メニューバー → プロジェクト → 一番下にある"プロジェクト名"プロパティ でも可能 )

FW180324_2e.png
プロジェクトのプロパティが開かれるので、
アプリケーション → ターゲット フレームワークでバージョンを選択。

ちなみに.NET Frameworkがちゃんとインストールされていないと、このプロパティは表示されませんでした。
もっと殺風景なプロパティが表示されて、設定変更出来る部分が数えるくらいしかありませんでした。
もし殺風景なプロパティが表示されたら、.NET Frameworkがちゃんとインストールされているかチェックが必要。
インストールしても表示されなかった場合は、vs_communityからインストールするとちゃんと見えるようになります。

↑の失敗をやっちゃいましたw
最終的にvs_communityからインストールしました

NuGetを使用して外部の動的ライブラリ(dll)を使用する

emotionサイトトップ >Visual Studioメモ
emotionサイトトップ > Visual Studioメモ >NuGetを使用して外部の動的ライブラリ(dll)を使用する

Visual Studioで外部の動的ライブラリ(dll)を使用する時は、プロジェクトのプロパティにあるリンカー項目に対象のライブラリディレクトリを登録する必要があるのですが・・・

Visual Studio2017を使っていたら、プロジェクトプロパティにリンカー項目自体が無い・・・
nuget.png

どうやら今はNuGetというパッケージマネージャーを使用するみたいです。
nuget.png

メニュー → ツール → NuGetパッケージマネージャー → ソリューションのNuGetパッケージの管理



nuget.png
NuGetマネージャーが開かれたら、”参照”をクリックして

nuget.png
検索欄に外部ライブラリ名を入力。
登録公開されているサードパーティの外部ライブラリならヒットするので、対象のライブラリをクリック

nuget.png
右側に表示されるウインドウで、
ライブラリをインストールするプロジェクトを選択してインストール。

これで後は勝手にライブラリをダウンロードして、プロジェクトにインストールされます。
なんだか簡単になりましたね。
このマネージャーでライブラリの管理が行われるので、ライブラリの追加/削除も簡単になりました。

他アプリで使われているメモリを参照する[ReadProcessMemory]

emotionサイトトップ >Visual Studioメモ
emotionサイトトップ > Visual Studioメモ >他アプリで使われているメモリを参照する[ReadProcessMemory]

ある会社が作成したソフトで、自分が欲しい機能が無かったのでその会社にその機能を実装して欲しい要望を提出中。
過去にユーザーからの要望によって機能が追加された実績が何度もあるので、機能を実装してくれるかもしれない。
できればその追加機能を実装したらそのデータを外部出力出来るようにして欲しいけど・・・そこまではやってくれなさそう・・・
一応、外部出力する為のツールが用意されてありましたけど、一部のデータしか参照出来ずデータ参照出来る範囲が限定されていました。
外部出力ツールはあくまでおまけで、出来ればアプリを使って欲しいんでしょうね・・・

という事で、そのソフトが使用しているメモリ領域を参照してデータを取得して、自作プログラムでそのデータを扱えるようにする為のメモ。

ReadProcessMemory関数
指定されたプロセスのメモリ領域からデータを読み取ります。読み取られる領域全体がアクセス可能でなければなりません。さもないと、関数は失敗します。
https://msdn.microsoft.com/ja-jp/library/cc429006.aspx


さて、問題は当然そのソフトのメモリマップは入手不可能なので、手探りで取得データを解析して、どのデータがどのアドレスにあるかは・・・やっぱり手探りになるんでしょうね。
昔サーキットエミュレータでメモリ解析した時は手探りでした。
あとは欲しいデータが動的変数じゃない事を祈るだけです・・・まぁデータ範囲が固定されていたので静的変数だと思いますけどね。

本当にメモじゃんw

Visual Studio 2015のデバッグでフリーズ(からのリンクエラー発生)する問題

emotionサイトトップ >Visual Studioメモ
emotionサイトトップ > Visual Studioメモ >Visual Studio 2015のデバッグでフリーズ(からのリンクエラー発生)する問題


Visual Studio 2015 C++で作成したプロジェクトで、ソースコードを何も追加せずにビルドし、
そのまま「デバッグなしで開始」を実行すると・・・
VS2015_リンクエラー1
このように何も無い真っ暗なコンソール画面が表示されます。
キーボードで操作しても無反応の為、強制終了させるしかありません。

更に厄介な事に、強制終了させてもプロセスはそのまま残ってしまいます。

VS2015_リンクエラー2
更に厄介な事にタスクマネージャー上でプロセス終了させようとしても終了出来ない場合があります。

こうなってしまうとどうなるかと言うと・・・
PCを再起動するまで作成したプログラムが実行し続けられる事になります。
その状態でリビルドを行うと・・・

VS2015_リンクエラー3

LINK : fatal error LNK1104: ファイル 'G:\WindowsUser\マイドキュメント\Visual Studio 2015\Projects\ConsoleApplication1\Debug\ConsoleApplication1.exe' を開くことができません。

というエラーが発生し、ビルド失敗します。
ビルド失敗というかビルド自体は成功するのですが、作成した.exeファイルが使用中の為上書きされず、結果として失敗するわけです。

何故このような現象が発生するかといいますと・・・

ズバリ、ウイルス対策プログラムが原因ですw

試しに、インストールされているウイルス対策プログラム(ウイルスバスター等)を一時的に無効化してからリビルドしてみると・・・(もちろん.exeファイル使用中の状態じゃない時にです!プロセス終了できなければPC再起動です。)

VS2015_リンクエラー4
今度は真っ暗な画面じゃないですね。
これが正常なパターンです。


ウイルス対策プログラムを停止させたままにするのは怖いので、
対策方法はマイクロソフトのサイトに掲載されているので、サイト内容に従って調整します。

https://msdn.microsoft.com/ja-jp/library/hhbdtt6d.aspx

対応内容は簡単で、Visual Studioのプロジェクトを置くフォルダを決めておいて、そのフォルダ配下はウイルス対策プログラムのスキャン対象から外す設定にする事です。
私のウイルス対策プログラムでは、「スキャンから除外」という設定で対象のファイルパスを設定するだけで終わりました。

この辺はインストールしているウイルス対策プログラムによって異なるので、各自使用しているウイルス対策プログラムのオプション設定やドキュメントで確認して下さい。


スポンサーリンク






スポンサーリンク
カテゴリ
OS (5)
Web (7)
CPU (16)
GPU (35)
GA2 (2)
GTA5 (18)
リンク
Unreal Engine
UE4_logo.png

無料化したゲームエンジンです。ミドルレンジクラスのGPUが必須ですが、GTX750Tiでも軽快に動作します。
ueHow
unityHow
Steam
steam.png
Valve Corporationが運営しているプラットフォームで、PCゲームをダウンロード購入出来ます。 不定期ながらだいたい四半期毎と10月の米国感謝祭と年末に大幅割引セールが行われるので、セール中に購入するのがおススメ。
RSSリンクの表示


スポンサーリンク