Share via


Only .Lib file is generated not .dll file

Question

Tuesday, November 15, 2016 12:17 PM

I am using VS 2013 trying to built an old legacy C/C++ application. The issue which I face is that, once I built the project after applying the settings mentioned below, the output window shows everything as successful & the file generated as  under DebugNexGen - pscdll.lib.

However I couldn't find any .dll's even after searching the entire Drives(s). Only the static library is created pscdll.lib as the output. The debug log doesn't report anything suspicious except the below warnings:

Below are my project Settings for the Project: pscdll

Configuration Properties->General

Output Directory - .\DebugNextGen\

Target Name - $(ProjectName)

Target Extension - .dll

Configuration Type - Dynamic Library

Under Linker

Output File : .\DebugNextGen\ pscdll.dll  /* BTW what is the use of this since we already specified this path in General Settings */

I have tried removing the text in the Output File tab (leaving it blank) after specifying the Target extension but the results are same.

I am using def file to export the required functions

All replies (22)

Tuesday, November 15, 2016 12:18 PM

Sorry, there is a typo in the above post, the file currently generated  under DebugNexGen is pscdll.lib & not pscdll.dll

the Log file warnings are as below, couldn't include above due to some wierd error stating that no links can be included until account is verified

LINK : warning LNK4044: unrecognized option '/pdbtype:sept'; ignored psauto.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/SAFESEH' specification Creating library .\DebugNexGen\pscdll.lib and object .\DebugNexGen\pscdll.exp pscdll.vcxproj -> K:\DEVELOPMENT\maccat\client\PSCDLL.\DebugNexGen\pscdll.dll
Below are my project Settings for the Project: pscdll


Tuesday, November 15, 2016 7:32 PM

Have you checked under the *soultion* build output directory? The dll may be dropped there, rather than under the project directory. The .lib should be created along with the dll, this is normal.

-- pa


Wednesday, November 16, 2016 3:01 AM

Hi emailforsk,

thanks for posting here.

>>I am using VS 2013 trying to built an old legacy C/C++ application. The issue which I face is that, once I built the project after applying the settings mentioned below, the output window shows everything as successful & the file generated as  under DebugNexGen - pscdll.dll.

However I couldn't find any .dll's even after searching the entire Drives(s). Only the static library is created pscdll.lib as the output. The debug log doesn't report anything suspicious except the below warnings:

Sorry I can't reproduce your problem. It works fine on my vs2015 update 3. I just create a dll project following these steps below.

1.On the menu bar, choose File, New, Project.

2.In the left pane of the New Project dialog box, expand Installed, Templates, Visual C++, and then select Win32.

3.In the center pane, select Win32 Console Application.

4.Specify a name for the project—for example, MathLibrary—in the Name box. Specify a name for the solution—for example, MathLibraryAndClient—in the Solution name box. Choose the OK button.

5.On the Overview page of the Win32 Application Wizard dialog box, choose the Next button.

6.On the Application Settings page, under Application type, select DLL.

7.Choose the Finish button to create the project.

8.Make the Output File value under Linker property as same as the values in General property.

Please refer to these steps and try again.

Here is a document about Creating and Using a Dynamic Link Library (C++).

https://msdn.microsoft.com/en-us/library/ms235636.aspx?f=255&MSPPError=-2147217396

Hope this could be help of you.

Best Regards,

Sera Yu

MSDN Community Support
Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact [email protected].


Wednesday, November 16, 2016 7:48 AM

Hi Pavel,

My problem is just the reverse, .lib is created but no dll is created, I was unable to edit the first post & hence I added this as my second post. And, I have searched the entire drives for this .dll, but its nowhere around in my drives.


Wednesday, November 16, 2016 7:55 AM

Hi Sera,

Thanks for the reply, but here my problem is bit different as below:

-> We already have a dll which was build successfully using an old version on VS (VS 6) I think. This uses the def file concept to export the required functions

-> Now, all that we did is to move from VS 6 to VS 2013 with the same code except some very minor change for version number up-gradation.

I mentioned the project settings above just to indicate that there seems no issue with those settings but some other issue is preventing the  dll generation.

-> The problem is that as mentioned in my second post, the output directory only contain  .lib file & other object files, no .dll file is generated  ANYWHERE.


Wednesday, November 16, 2016 1:49 PM

Hi All,

I made a slight advancement with the issue, I made a new project including the source files & def file from the old (errorneous) project 

Now, I am obtaining an output dll after the build.

I have a new issue with the new dll . This dll is being invoked from an exe (for which I don't have the source code), let me call it as exe_1. This dll provides an API to call another exe_2. So exe_1 should invoke exe_2 using the dll API.

I have verified that this API is being included in the dll (Using Dependency Walker). But when I invoke the exe_1, something happens so that exe_2 is not at all getting called.

I cannot debug the issue since the the execution call is not reaching the exe_2 entry point (I have included a DebugBreak() as the next statement of the entry point so that if the execution reaches here, it should break). Any suggestions ?


Wednesday, November 16, 2016 2:04 PM

You should be able to create a debug build of your DLL.  Set a breakpoint in the DLL function that is exported to invoke exe_2.  In the project properties specify exe_1 as the target to be debugged.  Don't worry about the lack of symbols for exe_1 and let the debugger run.   Your DLL will be loaded during the debugging session and if exe_1 is calling the exported function your breakpoint should be hit.  You can then step through the dll code to make sure that it is properly invoking exe_2.


Wednesday, November 16, 2016 3:14 PM

Hi RLWA32,

Thanks for the reply. Actually when I tried the above step, the library breakpoints didn't work out (for the debug build of the dll) & the exe_1 exited with the usual error code

After this I doubted the loading of the dll itself, so I wrote some sample code to load the dll using LoadLibrary function. I did gave the absolute path of the dll so that no other versions of it can interfere.

hWinsockDll = LoadLibrary(TEXT("C:\Program Files (x86)\PS Wincat\pscdll.dll"));

Now I got error code 127 through GetLastError() function. Note that I have already verified that my required functions are present in the dll through both DependencyWalker & dumpbin. 

Is there any basic Windows API missing in the DLL that is making the LoadLibrary to throw error code 127 ?


Wednesday, November 16, 2016 3:30 PM

Are all of the exe's and dll's 32 bit?

What is "the usual error code" for exe_1?

Since we haven't seen any code for the exe's or the dll (including def file) its a guessing game.  Can you create a small demo that reliably reproduces the problem? 


Wednesday, November 16, 2016 3:59 PM

Hi RLWA32,

All files are 32-bit only. Usual error code is a customized error code for my exe_1 which operates on client-server logic, just mentioning it here- Server Connect Failed (Code -1, Server 127.0.0.1:3000)

Below is my def file content pscdll.def:

EXPORTS

ps_open=ps_open
ps_openi=ps_openi
ps_open_lic=ps_open_lic
psopen=psopen
psopeni=psopeni
psopenx=psopenx
psopenxi=psopenxi
psopenxil=psopenxil

psclose=psclose
ps_close=ps_close

ps_autorestart=ps_autorestart

ServerHandle=ServerHandle

psaservererror=psaservererror
psfservererror=psfservererror
psservererror=psservererror
pserrordescription=pserrordescription
ps_errordescription=ps_errordescription
pserrormnemonic=pserrormnemonic
ps_getErrorCode=ps_getErrorCode
psserverversionshort=psserverversionshort
psserverversionlong=psserverversionlong
psversion=psversion
ps_version=ps_version
pssessioninfo=pssessioninfo
ps_sessioninfo=ps_sessioninfo
pspoll=pspoll
ps_poll=ps_poll

psreset=psreset
ps_reset=ps_reset

psshutdown=psshutdown
ps_shutdown=ps_shutdown

ps_parttype=ps_parttype
ps_parttype_full=ps_parttype_full
ps_isparttype=ps_isparttype
ps_ismfgcode=ps_ismfgcode
ps_ismfgname=ps_ismfgname
ps_iintchg=ps_iintchg
ps_buyersguide=ps_buyersguide

psdctl=psdctl
psadctl=psadctl
ps_dctl=ps_dctl
ps_dctl_full=ps_dctl_full
psfdctl=psfdctl
psxdctl=psxdctl

psxyears=psxyears
psyears=psyears
ps_year=ps_year

psamakes=psamakes
psmakes=psmakes
ps_make=ps_make
psfmakes=psfmakes
psxmakes=psxmakes

psmet=psmet

psamodels=psamodels
psfmodels=psfmodels
psmodels=psmodels
ps_model=ps_model
ps_model_mdl=ps_model_mdl
ps_modelnum=ps_modelnum
psxmodels=psxmodels

ps_engine=ps_engine
ps_engine_mdl=ps_engine_mdl
ps_engine2=ps_engine2
psfengines=psfengines
psxengines=psxengines
psaengines=psaengines
psengines=psengines

psamacvid=psamacvid
psfmacvid=psfmacvid
psmacvid=psmacvid
ps_macvid=ps_macvid
psxmacvid=psxmacvid
psvid=psvid
psvindecoder=psvindecoder
ps_vindecoder=ps_vindecoder
ps_car_info=ps_car_info
ps_car_info_mdl=ps_car_info_mdl
ps_car_info2=ps_car_info2

pscat=pscat
pscatbyapaapdname=pscatbyapaapdname
pscatbyapaapdnum=pscatbyapaapdnum
pscatpt=pscatpt
pscatpt_srcpart=pscatpt_srcpart
pscatpt_bymfg=pscatpt_bymfg
pscatmenu=pscatmenu
pscatmenu_srcpart=pscatmenu_srcpart
ps_catalog=ps_catalog
ps_catalog_full=ps_catalog_full
ps_catalogl=ps_catalogl
ps_catalogl_full=ps_catalogl_full
ps_catalogpt=ps_catalogpt
ps_catalogpt_full=ps_catalogpt_full
ps_catalog_menu=ps_catalog_menu
ps_catall=ps_catall

psamfgprice=psamfgprice
psmfgprice=psmfgprice
psfmfgprice=psfmfgprice
ps_mfgprc=ps_mfgprc
ps_amfgprc_tst=ps_amfgprc_tst

psamfgprice2=psamfgprice2
psfmfgprice2=psfmfgprice2
psmfgprice2=psmfgprice2
ps_mfgprc2=ps_mfgprc2

psamfgprice3=psamfgprice3
psfmfgprice3=psfmfgprice3
psmfgprice3=psmfgprice3
ps_mfgprc3=ps_mfgprc3

psprice4=psprice4
ps_price4=ps_price4

psfhist=psfhist
psparttype=psparttype

psmenu=psmenu
psxmenu=psxmenu
psamenus=psamenus
psmenu_child=psmenu_child
psmenu_write=psmenu_write
psxmenu_child=psxmenu_child
psamenus_child=psamenus_child
psfmenus=psfmenus
ps_menu=ps_menu
ps_menu_child=ps_menu_child
ps_menu_name=ps_menu_name
ps_menu_write=ps_menu_write
ps_menu_name_write=ps_menu_name_write

psagroups=psagroups
ps_agroups=ps_agroups
psfgroups=psfgroups
psxgroup=psxgroup
psgroup=psgroup
ps_group=ps_group

psasubgroups=psasubgroups
psfsubgroups=psfsubgroups
psxsubgroup=psxsubgroup
pssubgroup=pssubgroup
ps_subgroup=ps_subgroup

pslsubgroup=pslsubgroup
ps_lsubgroup=ps_lsubgroup
psxlsubgroup=psxlsubgroup
psalsubgroups=psalsubgroups
psflsubgroups=psflsubgroups

pssearch=pssearch
ps_search=ps_search
psindex=psindex
psaindex=psaindex
psfindex=psfindex
ps_index=ps_index
ps_aindex_tst=ps_aindex_tst
pssynonym=pssynonym
ps_synonym=ps_synonym

pslcomponent=pslcomponent
ps_lcomponent=ps_lcomponent
psxlcomponent=psxlcomponent
psalcomponents=psalcomponents
psflcomponents=psflcomponents

psloperation=psloperation
ps_loperation=ps_loperation
psxloperation=psxloperation
psaloperations=psaloperations
psfloperations=psfloperations

pslaborbylusg=pslaborbylusg
ps_laborbylusg=ps_laborbylusg
ps_laborbylusg_full=ps_laborbylusg_full
ps_laborbyusg=ps_laborbyusg
ps_laborbyusg_full=ps_laborbyusg_full
pslaborbyassociation=pslaborbyassociation
ps_laborbyassociation=ps_laborbyassociation
ps_laborbyassociation_full=ps_laborbyassociation_full
pslaborbycomponent=pslaborbycomponent
ps_laborbylcomponent=ps_laborbylcomponent
ps_laborbylcomponent_full=ps_laborbylcomponent_full
pslaborbyptype=pslaborbyptype
ps_laborbyptype=ps_laborbyptype
ps_laborbyptype_full=ps_laborbyptype_full

pslusgxref=pslusgxref
ps_lusgxref=ps_lusgxref
pslptypexref=pslptypexref
ps_lptypexref=ps_lptypexref

psisparttype=psisparttype
psxisparttype=psxisparttype
psaisparttypes=psaisparttypes
psfisparttypes=psfisparttypes
psismfgcode=psismfgcode
psxismfgcode=psxismfgcode
psaismfgcodes=psaismfgcodes
psfismfgcodes=psfismfgcodes
psismfgname=psismfgname
psxismfgname=psxismfgname
psaismfgnames=psaismfgnames
psfismfgnames=psfismfgnames
psiintchg=psiintchg
psxiintchg=psxiintchg
psaiintchgs=psaiintchgs
psfiintchgs=psfiintchgs
psaparttype=psaparttype
psxparttype=psxparttype
psfparttype=psfparttype

pslicmain=pslicmain
ps_licmain=ps_licmain
pslicmfglst=pslicmfglst
ps_licmfglst=ps_licmfglst
pslicmodlst=pslicmodlst
ps_licmodlst=ps_licmodlst
pslicmoduledesc=pslicmoduledesc
ps_licmoduledesc=ps_licmoduledesc
pslicmfgbyptype=pslicmfgbyptype
ps_licmfgbyptype=ps_licmfgbyptype

pssmartpage=pssmartpage
psxsmartpage=psxsmartpage
psasmartpage=psasmartpage
psfsmartpage=psfsmartpage
ps_smartpage=ps_smartpage

pscatver=pscatver
ps_catver=ps_catver

pswimfg=pswimfg
psxwimfg=psxwimfg
psawimfgs=psawimfgs
psfwimfgs=psfwimfgs
ps_wimfg=ps_wimfg

pspearlmap=pspearlmap
psxpearlmap=psxpearlmap
psapearlmaps=psapearlmaps
psfpearlmaps=psfpearlmaps
ps_pearlmap=ps_pearlmap

pscounterman=pscounterman
ps_counterman=ps_counterman
ps_counterman_full=ps_counterman_full
ps_cntrmanptype=ps_cntrmanptype
ps_cntrmanptype_full=ps_cntrmanptype_full
pscntrmanptype=pscntrmanptype
pscountermanonly=pscountermanonly
ps_countermanonly=ps_countermanonly

psprevmaint=psprevmaint
ps_prevmaint=ps_prevmaint
pspmmain=pspmmain
ps_pmmain=ps_pmmain
pspmitem=pspmitem
ps_pmitem=ps_pmitem
pspmaction=pspmaction
ps_pmaction=ps_pmaction
pspmfrequency=pspmfrequency
ps_pmfrequency=ps_pmfrequency
pspmnote=pspmnote
ps_pmnote=ps_pmnote
pspmwarranty=pspmwarranty
ps_pmwarranty=ps_pmwarranty

psc_alloc_client=psc_alloc_client
psc_alloc_cmd=psc_alloc_cmd
psc_alloc_res=psc_alloc_res
psc_autorun=psc_autorun
psc_close_session=psc_close_session
psc_connect_client=psc_connect_client
psc_copynext=psc_copynext
psc_copynextchar=psc_copynextchar
psc_disconnect_client=psc_disconnect_client
psc_do_cmd=psc_do_cmd
psc_do_cmd_linked=psc_do_cmd_linked
psc_encode_year=psc_encode_year
psc_find_active=psc_find_active
psc_find_response=psc_find_response
psc_free_all_responses=psc_free_all_responses
psc_free_client=psc_free_client
psc_free_cmd=psc_free_cmd
psc_free_res=psc_free_res
psc_free_response=psc_free_response
psc_get_cmd=psc_get_cmd
psc_get_qstate=psc_get_qstate
psc_get_res=psc_get_res
psc_load_ini=psc_load_ini
psc_put_cmd=psc_put_cmd
psc_put_res=psc_put_res
psc_recordset=psc_recordset
psc_set_complete=psc_set_complete
psc_set_qstate=psc_set_qstate
psc_spawn_process=psc_spawn_process
psc_spawn_server=psc_spawn_server
psc_spawn_service=psc_spawn_service
psc_stringonly_callback=psc_stringonly_callback

pssetmultiserver=pssetmultiserver
psfilterparts=psfilterparts
pscatall=pscatall
psacatall=psacatall

psamorelabor=psamorelabor
psfmorelabor=psfmorelabor
pslaborsearch=pslaborsearch
pspmsst=pspmsst

The dll code is somewhat larger in size & it has dependencies with other dll's.

The main reason why I asked the question about missing Windows API in the dll is that:

1. Even the breakpoint set on DLLMain is not working when tried the step mentioned in the previous post (invoking exe_1 then dll)

2. My sample code only contains a LoadLibrary call & it doesn't have any code to invoke other API's being exported by the dll.

For that itself LoadLibrary is throwing error 127. So how it concludes that some required API's are not properly included in the DLL ?


Wednesday, November 16, 2016 4:05 PM

Is there any basic Windows API missing in the DLL that is making the LoadLibrary to throw error code 127 ?

127 can happen if a linked DLL has a missing exported function.


Wednesday, November 16, 2016 4:18 PM | 1 vote

Since your dll is dependent on other dll's it's possible that one of the dependencies is not exporting a function that your dll is importing.  You should check all of the dll's (application provided, not system) in the dependency chain for missing exports.


Wednesday, November 16, 2016 5:32 PM

Actually I was also on the same track, I used Profiling in the Dependency Walker to find out the culprit.

It indicates that WSAStartup() is the function which caused the issue by returning NULL when called from within my dll. But I couldn't locate this function call directly from my dll, may be some other dependent lib's are using it.

So, I tried including the ws2_32.lib as an Additional Dependency while building my dll, but again that doesn't seem to work out, I am still getting the same Profile Error from DW.


Wednesday, November 16, 2016 5:50 PM | 1 vote

It indicates that WSAStartup() is the function which caused the issue by returning NULL when called from within my dll. But I couldn't locate this function call directly from my dll, may be some other dependent lib's are using it.

From the docs -

"If successful, the WSAStartup function returns zero. Otherwise, it returns one of the error codes listed below."

In any event, that wouldn't cause the 127 error code since you indicate that the function was found and successfully called.

The problem is some other function that is statically linked in the dependency chain for which an export is not available.


Thursday, November 17, 2016 12:22 PM

Hi RLWA32,

I think your observation with the error code is correct & please ignore the LoadLibraryError mentioned by me previously as it is a different story & is not reproducible now.

I was really surprised by the observations I have on using Profiling for the below combinations:

  1. exe_1 with old dll 

Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

Starting profile on 11/17/2016 at 6:57:48 AM

Operating System: Microsoft Windows NT/2000/XP/2003/Vista based Media Center (64-bit), version 6.01.7601 Service Pack 1
Program Executable: c: slash program files (x86) slash ps wincat slash MACCATSRV.EXE
Program Arguments: /port=3000
Starting Directory: C: slash Program Files (x86) slash PS Wincat slash 
Search Path: C: slash Program Files (x86) slash PS Wincat;C: slash WINDOWS;C: slash WINDOWS slash System32;C: slash WINDOWS slash System32 slash Wbem;C: slash WINDOWS slash System32 slash WindowsPowerShell slash v1.0;C: slash Program Files (x86) slash SecureCRT 3.0;C: slash Program Files (x86) slash doxygen slash bin;C: slash cygwin slash bin;C: slash Program Files (x86) slash Microsoft Visual Studio slash Common slash MSDev98 slash Bin;C: slash Program Files (x86) slash Microsoft Visual Studio slash VC98 slash Bin;C: slash Program Files (x86) slash Microsoft Visual Studio slash Common slash TOOLS;C: slash Program Files (x86) slash Microsoft Visual Studio slash Common slash TOOLS slash WINNT;C: slash Program Files (x86) slash Windows Kits slash 8.1 slash bin slash x86;

Options Selected:
     Log DllMain calls for process attach and process detach messages.
     Hook the process to gather more detailed dependency information.
     Log LoadLibrary function calls.
     Log GetProcAddress function calls.
     Log first chance exceptions.
     Log debug output messages.
     Automatically open and profile child processes.

Started "MACCATSRV.EXE" (process 0x2130) at address 0x013E0000.  Successfully hooked module.
Loaded "NTDLL.DLL" at address 0x77E80000.  Successfully hooked module.
Loaded "KERNEL32.DLL" at address 0x764F0000.  Successfully hooked module.

  1. exe_1 with new dll

Starting profile on 11/17/2016 at 4:25:45 AM

Operating System: Microsoft Windows NT/2000/XP/2003/Vista based Media Center (64-bit), version 6.01.7601 Service Pack 1
Program Executable: c: slash program files (x86) slash ps wincat slash WINCAT.EXE
Program Arguments: 
Starting Directory: C: slash Program Files (x86) slash PS Wincat slash 
Search Path: C: slash Program Files (x86) slash PS Wincat;C: slash WINDOWS;C: slash WINDOWS slash System32;C: slash WINDOWS slash System32 slash Wbem;C: slash WINDOWS slash System32 slash WindowsPowerShell slash v1.0;C: slash Program Files (x86) slash SecureCRT 3.0;C: slash Program Files (x86) slash doxygen slash bin;C: slash cygwin slash bin;C: slash Program Files (x86) slash Microsoft Visual Studio slash Common slash MSDev98 slash Bin;C: slash Program Files (x86) slash Microsoft Visual Studio slash VC98 slash Bin;C: slash Program Files (x86) slash Microsoft Visual Studio slash Common slash TOOLS;C: slash Program Files (x86) slash Microsoft Visual Studio slash Common slash TOOLS slash WINNT;C: slash Program Files (x86) slash Windows Kits slash 8.1 slash bin slash x86;

Started "WINCAT.EXE" (process 0x10F8) at address 0x10000000.  Successfully hooked module.
Loaded "NTDLL.DLL" at address 0x77E80000.  Successfully hooked module.
Loaded "KERNEL32.DLL" at address 0x764F0000.  Successfully hooked module.

Please note that :

My exe_1 is WINCAT.EXE

exe_2 is  MACCATSRV.EXE

So what I see now is that while I try profiling with my old dll, it invokes exe_2 at the first time itself where as new dll invokes exe_1 initially. This is more confusing since, the only difference I made is to change the dll from old to new.


Thursday, November 17, 2016 12:24 PM

Forgive me webpage shows some wierd error (Account not verified) while I try to put \ so I have replaced all \ with the word "slash"


Thursday, November 17, 2016 12:32 PM

It looks to me that you are profiling two different executables.

The session at 4:25:45 AM logged -

Program Executable: c: slash program files (x86) slash ps wincat slash WINCAT.EXE

The session at 6:57:48 AM logged -

Program Executable: c: slash program files (x86) slash ps wincat slash MACCATSRV.EXE


Thursday, November 17, 2016 12:38 PM

Forgive me webpage shows some wierd error (Account not verified) while I try to put \ so I have replaced all \ with the word "slash"

Did you request to have your account verified?

Have you tried to use the Insert Code Block button?


Thursday, November 17, 2016 12:55 PM

Actually no, this is the point where I am totally getting out of mind. I have verified multiple time to confirm this is happening, hence the difference in the time log.

Even I can notice  a delay when I try to use exe_1, old dll combination, where as exe_1 new dll gives out the error immediately.


Thursday, November 17, 2016 1:09 PM

Actually no, this is the point where I am totally getting out of mind. I have verified multiple time to confirm this is happening, hence the difference in the time log.

Even I can notice  a delay when I try to use exe_1, old dll combination, where as exe_1 new dll gives out the error immediately.

Sorry, but without a sample to work with or code to look at my psychic debugging skills are insufficient to address the issues you mention.


Thursday, November 17, 2016 1:25 PM

Yes, I understand that, anyway thanks for the support.

BTW, I have 2 observations, one w.r.t to Profiling & other w.r.t dumpbin

1. If we see the old dll Profile output, the below warnings are extra

Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

2. The "dumpbin /exports" for the new & old dll  have some differences (it should't be right?)

New dll Summary

Summary

        6000 .data
      **  1000 .idata**
        C000 .rdata
        4000 .reloc
        1000 .rsrc
       5F000 .text
      ** 2F000 .textbss**

Old Dll Summary

Summary

        C000 .data
        6000 .rdata
        3000 .reloc
        1000 .rsrc
       2F000 .text

Does it make any sense ?


Thursday, November 17, 2016 1:26 PM

Again, I can't answer such questions.  They have no context to me.