

Windows10のVisual studioでDLLを開発しています。  
今まで、VS2015で開発していたのですが、VS2017にバージョンアップしました。

すると、VS2015で作成していたものは、正常に動作していたDLLが、VS2017に移植したDLLが動作しなくなりました。  
その原因が分からないのですが、  
VS2015で作成していたDLLのサイズはDebug版で12MBありました。  
ところが、VS2017で作成したDLLのサイズが2MBしかありません。

この為に、動作しなくなったと考えられるのですが、  
VS2017でDLLがうまくリンクされていなくて、サイズが極端に小さくなってしまったのだと思います。

サイズが小さくなってしまった原因として考えられることは、  
何があるでしょうか？

cl.exeの引数は、新しい方で

[code]

    /FR"Build\x64\Debug\" /GS /TP /W3 /wd"4996" /Gy /Zc:wchar_t- /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Inc" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\GSRoot" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\GSRoot\STL\imp" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\GSUtils" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\Geometry" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\DGLib" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\GX" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\GXImage" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\GXImageBase" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\DGGraphix" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\Graphix" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\TextEngine" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\InputOutput" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\UCLib" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\UDLib" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\Pattern" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\VectorImage" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Modules\VBAttrDialogs" /I"C:\Program Files\GRAPHISOFT\API Development Kit 23.3006\Support\Extensions\APIOutputFramework" /Zi /Gm- /Od /Fd"Build\x64\Debug\Object23.pdb" /Zc:inline /fp:precise /D "API_VERSION=23" /D "WIN32" /D "_DEBUG" /D "WINDOWS" /D "_WINDOWS" /D "_STLP_DONT_FORCE_MSVC_LIB_NAME" /D "_WINDLL" /errorReport:prompt /GF /WX- /Zc:forScope /RTC1 /GR /Gr /MDd /FC /Fa"Build\x64\Debug\" /EHsc /nologo /Fo"Build\x64\Debug\" /Fp"Build\x64\Debug\Object23.pch" /diagnostics:classic 
    
[/code]

で、古い方では

[code]

    /FR"Build\x64\Debug\" /GS /TP /W3 /wd"4996" /Gy /Zc:wchar_t- /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Inc" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\GSRoot" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\GSRoot\STL\imp" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\GSUtils" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\Geometry" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\DGLib" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\GX" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\GXImage" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\GXImageBase" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\DGGraphix" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\Graphix" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\TextEngine" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\InputOutput" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\UCLib" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\UDLib" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\Pattern" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\VectorImage" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Modules\VBAttrDialogs" /I"C:\Program Files\GRAPHISOFT\API Development Kit 22.3004\Support\Extensions\APIOutputFramework" /Zi /Gm- /Od /Fd"Build\x64\Debug\Object22.pdb" /Zc:inline /fp:precise /D "API_VERSION=22" /D "WIN32" /D "_DEBUG" /D "WINDOWS" /D "_WINDOWS" /D "_STLP_DONT_FORCE_MSVC_LIB_NAME" /D "_WINDLL" /errorReport:prompt /GF /WX- /Zc:forScope /RTC1 /GR /Gr /MDd /Fa"Build\x64\Debug\" /EHsc /nologo /Fo"Build\x64\Debug\" /Fp"Build\x64\Debug\Object22.pch" 
    
[/code]

で、少し違いました。

link.exe は古い方で

[code]

    /OUT:"Build\x64\Debug\Object22.apx" /MANIFEST /NXCOMPAT /PDB:"Build\x64\Debug\Object22.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /DLL /MACHINE:X64 /ENTRY:"DllMainEntry" /INCREMENTAL /PGD:"Build\x64\Debug\Object22.pgd" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Build\x64\Debug\Object22.apx.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1
    
[/code]

新しい方で

[code]

    /OUT:"Build\x64\Debug\Object23.apx" /MANIFEST /NXCOMPAT /PDB:"Build\x64\Debug\Object23.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /DLL /MACHINE:X64 /ENTRY:"DllMainEntry" /INCREMENTAL /PGD:"Build\x64\Debug\Object23.pgd" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Build\x64\Debug\Object23.apx.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1
    
[/code]

と、オプションは同じのようです。

以上。ご教授下さい


CC BY-SA 4.0
2020-04-23T00:42:54.983
65877
2020-04-23T03:42:28.967
2020-04-23T03:42:28.967
19110
39774
question
visual-studio
VS2017で出力DLLのサイズが小さくなった