Syminitialize not found when calling 64 bit dll

Syminitialize not found when calling 64 bit dll

I am trying to create a 64 bit Fortran application calling into a 64 bit dll
provided by a 3rd party.

The application is created by means of Intel's command line tools ifort (64 bit) and xilink (64 bit).
If the application is created with debug information, then everything works
fine. However, if it is created without debug information, then an error
message occurs stating that procedure entry "SymInitialize" was not found in
the 3rd party dll.

I know that SymInitialize is exported by imagehlp.lib of the PlatformSDK
and hence I added the appropriate entry to the link command. However, this
did not help.

Version information:

ifort - Intel(R) Visual Fortran Intel(R) 64 Compiler Professional for applications running on Intel(R) 64, Version 11.1    Build 20101201

xilink - Intel(R) Linker Driver for applications running on Intel(R) 64, Version 11.1
Build 20101201
Copyright (C) 1985-2010 Intel Corporation.  All rights reserved.
xilink: executing 'link'
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation.  All rights reserved.

Thanks for any advice,

Dietmar

3 帖子 / 0 全新
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项

Can you show the two command lines please?  I'd like to see what other command line options are being used between the working / failing cases.

Also, can you post the exact error message you are getting?  Again, I'd like to see whether the error is coming out of link.exe or xilink.exe.

   thank you -

                             --Lorri

 

The command lines for the error case are

ifort /object:test1.obj /what  /I ..\..\sublib\INTEL64\cvt_w32i /Qsave /Qzero /integer-size:16 /fpconstant /c /fixed /assume:byterecl /notraceback /I C:\win64app\Silverfrost\ftn95\source64\INTEL64 /fpp /define CLEARWIN=1 test1.for

xilink /qv /OUT:test1.exe /INCREMENTAL:NO  /SUBSYSTEM:CONSOLE test1.obj g:\WIN32APP\Silverfrost\FTN95_x64\clearwin64f.a g:\WIN32APP\Silverfrost\FTN95_x64\clearwin64.a   C:\win64app\Silverfrost\ftn95\source64\INTEL64\clrwin.obj C:\win64app\Silverfrost\ftn95\source64\INTEL64\mswinapi.obj

those for the successful case are:

ifort /object:debug\test1.obj /what /debug /I ..\..\sublib\INTEL64\cvt_w32i\debug /Qsave /Qzero /integer-size:16 /fpconstant /c /fixed /assume:byterecl /notraceback /I C:\win64app\Silverfrost\ftn95\source64\INTEL64\debug /fpp /define CLEARWIN=1 test1.for

xilink /qv /OUT:debug\test1.exe /INCREMENTAL:NO /debug /SUBSYSTEM:CONSOLE debug\test1.obj g:\WIN32APP\Silverfrost\FTN95_x64\clearwin64f.a g:\WIN32APP\Silverfrost\FTN95_x64\clearwin64.a   C:\win64app\Silverfrost\ftn95\source64\INTEL64\debug\clrwin.obj C:\win64app\Silverfrost\ftn95\source64\INTEL64\debug\mswinapi.obj

Here test1 is the basename of the test application and clearwin64.a provides for the 3rd party dll clearwin.dll.

Even for the error case, executable test1.exe is linked succesfully. The error mentioned occurs at runtime and is contained in a dialg box, sorry, I forgot to mention that.
Unfortunately it is in German: Der Prozedureinsprungpunkt "SymInitialize" wurde in der DLL "clearwin64.dll" nicht gefunden.

In the successful case executable debug\test1.exe may be executed successfully.

Regards,
Dietmar

发表评论

登录添加评论。还不是成员?立即加入