tcl/tk (8.5)を外部の c ライブラリで実行して、d2xx USB ライブラリに接続しています。VS 2012 Native Tools
Windows 8 を実行していて、コマンド プロンプトを使用してライブラリをコンパイルしようとしています。コマンドプロンプトを起動すると、私の PWD は次のようになります。
\Program Files (x86)\Microsoft Visual Studio 11.0\VC
c ライブラリ (tclftd2xx.c) には、必要な tcl ライブラリと d2xx ヘッダーにリンクするための環境を適切にセットアップする仮想スタジオ用の nmake ファイルが付属しています。
VS コマンド ウィンドウで、makefile.vc を含むディレクトリに移動し、次のように入力します。
nmake .....
そして、tclftd2xx.dll を取得します。
tclftd2xx.dll calls msvcr110.dll
. これらの両方が /Tcl/lib に適切に配置されている場合、Windows 8 システム、Vista、および Windows 7 でうまく機能します。
ただし、Windows XP にインストールすると、Windows は tclftd2xx.dll をロードできません。
いくつかの検索を行ったところ、v110_xp ツールセット用に VS2012 を構成する必要があることがわかりました。リンク ( http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx ) には次のメモがあります。
v110_xp ツールセットに切り替えられた Visual Studio 2012 ソリューションおよびプロジェクトは、追加の手順なしで、MSBuild または DEVENV を使用してコマンド ラインからビルドできます。
ただし、CL と Link を直接使用する場合は、追加の手順が必要です。以下の手順は、バッチ スクリプトを作成することで自動化できることに注意してください。
私がここでやったこと:
REM set include and path variables
set INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%
set PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%
REM When targeting X86, set the lib path as follows:
set LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
REM set the compiler options
set CL=/D_USING_V110_SDK71_;%CL%
REM When targeting x64, set the lib path as follows:
REM set LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib\x64;%LIB%
REM Specify the correct subsystem and subsystem version for the linker based on the type of
REM application you are building. Applications targeting the x86 version of Windows XP must specify
REM subsystem version 5.01, and applications targeting x64 must specify version 5.02.
REM For x86 console applications:
set LINK=/SUBSYSTEM:CONSOLE,5.01 %LINK%
REM For x64 console applications:
REM set LINK=/SUBSYSTEM:CONSOLE,5.02 %LINK%
XP バージョンをビルドするには、VS コマンド ラインから 1) .bat ファイルを実行しました 2) nmake .....
Windows 8 のターゲット dll とまったく同じサイズの .dll を取得します。
だから私は2つの質問があります:
- の実行に加えて、v110_xp ツールセットを有効にするために実行する必要がある他の魔法の構成スクリプトまたは環境変数はありますか
.bat file
、または .bat ファイルを実行すると完全な構成が行われますか? - XP システムにロードする以外に、.dll が実際に XP システムをターゲットにしていることを確認する方法はありますか?