6.6. .NETおよび.NET Frameworkインタフェース
- PDF Viewer API はC++で開発されたネイティブDLLを利用しています。このため、32bit・64bitのアーキテクチャに依存します。開発するアプリケーションのプラットフォームは「x64」または「x86」をご利用ください。「ANY CPU」は推奨しません。
- PDF Viewer SDK のDLLを参照するとき、ビルド対象のプラットフォームが”x86”であるか”x64”であるかにあわせて、それぞれ32bit版DLL、64bit版DLLを参照する必要があります。Visual Studioの .NET6/.NET Framework プロジェクト上で、プラットフォームに合わせて別のDLL参照を指定することはできません。このため、例えば次のような方法で切り替える必要があります。
【方法1】 プロジェクトを “x86”、”x64”の両方用意し、各プロジェクトでは、それぞれターゲットに応じたDLLを参照します。ソリューションファイルでは、”x86”、”x64”ターゲットにあわせて、追加するプロジェクトをx86版、x64版と切り替えるよう構成します。この方法の利点は、プロジェクトファイルを直接編集する必要がなく、Visual Studio 上で編集できることです。
【方法2】プロジェクトのDLL参照を手動で編集する方法です。C#の場合、”.csproj”ファイルにおける参照設定を Include属性でターゲットにあわせてそれぞれ指定します。
<Reference Include="AvsDotNetViewerSDK">
<HintPath Condition=" '$(Platform)' == 'x86' ">..\..\Windows-VS2019\Win32\Release\AvsDotNetViewerSDK.dll</HintPath>
<HintPath Condition=" '$(Platform)' == 'x64' ">..\..\Windows-VS2019\x64\Release\AvsDotNetViewerSDK.dll</HintPath>
</Reference>
ここではHintPathで条件指定を行い切り替えていますが、ItemGroupで切り替えることも可能です。
この方法の利点は x86、x64それぞれプロジェクトを用意する必要がない点です。一方手動で編集するため、間違いやすい、Visual Sutido で不意に編集を行うと編集が上書きされてしまう等のデメリットがあります。プロジェクトファイルに詳しくなければ1つめの方法をお勧めいたします。SDK添付のサンプルプロジェクトではこちらの方法を使用しています。
参考) https://docs.microsoft.com/ja-jp/visualstudio/ide/how-to-configure-projects-to-target-platforms?view=vs-2019