Windows Vista Tips

Windows Vista Tips > Newsgroups > Windows Vista Drivers > error LNK2005: _sprintf already defined in ntdll.lib(ntdll.dll)

Reply
Thread Tools Display Modes

error LNK2005: _sprintf already defined in ntdll.lib(ntdll.dll)

 
 
I.You
Guest
Posts: n/a

 
      02-09-2007
Hi.

I'm using a few DDK functions in VS2005 to develop FS Driver Application, but
I have serious link errors as follow:

libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined in
ntdll.lib(ntdll.dll)
libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
ntdll.lib(ntdll.dll)
libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
ntdll.lib(ntdll.dll)


System Environment:
Windwos XP Prof. SP2
MS Visual Studio 2005


I think this is probably the error of when the CRT or MFC
library(libcmtd.lib) and DDK one(ntdll.lib) are linked in the wrong order,
but not sure.

Why I think so is, please see below the order of libs. as building with
/verbose:lib option.

I think that ntdll.lib should be linked after libcmtd.lib, but I'm not sure...

How do you everyone think about it?

I wish to listen your opinions.



....

a few warnings...

....

Compiling resources...
Linking...
Searching libraries
Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\atlmfc\lib\nafxcwd.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\libcmtd.lib:
libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined in
ntdll.lib(ntdll.dll)
libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
ntdll.lib(ntdll.dll)
libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
ntdll.lib(ntdll.dll)
Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\user32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\gdi32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\msimg32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\comdlg32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\winspool.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\advapi32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\shell32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\comctl32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\shlwapi.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\oledlg.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\ole32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\oleaut32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\urlmon.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\atlsd.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\ws2_32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\mswsock.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\oleacc.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\imagehlp.lib:
Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\atlmfc\lib\nafxcwd.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\libcmtd.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\user32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\gdi32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\msimg32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\comdlg32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\winspool.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\advapi32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\shell32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\comctl32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\shlwapi.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\oledlg.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\ole32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\oleaut32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\urlmon.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\atlsd.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\ws2_32.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\mswsock.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\oleacc.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\lib\imagehlp.lib:
Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
Searching C:\Program Files\Microsoft Visual Studio
8\VC\atlmfc\lib\nafxcwd.lib:
Finished searching libraries
Debug\Ext2FsdApp.exe : fatal error LNK1169: one or more multiply defined
symbols found

 
Reply With Quote
 
 
 
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      02-09-2007
Do not build kernel-mode drivers from VS. Use the DDK/WDK BUILD command
instead.

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation

http://www.storagecraft.com

"I.You" <> wrote in message
news:0D68B3B8-6827-4265-B742-...
> Hi.
>
> I'm using a few DDK functions in VS2005 to develop FS Driver Application, but
> I have serious link errors as follow:
>
> libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined in
> ntdll.lib(ntdll.dll)
> libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
> ntdll.lib(ntdll.dll)
> libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
> ntdll.lib(ntdll.dll)
>
>
> System Environment:
> Windwos XP Prof. SP2
> MS Visual Studio 2005
>
>
> I think this is probably the error of when the CRT or MFC
> library(libcmtd.lib) and DDK one(ntdll.lib) are linked in the wrong order,
> but not sure.
>
> Why I think so is, please see below the order of libs. as building with
> /verbose:lib option.
>
> I think that ntdll.lib should be linked after libcmtd.lib, but I'm not

sure...
>
> How do you everyone think about it?
>
> I wish to listen your opinions.
>
>
>
> ...
>
> a few warnings...
>
> ...
>
> Compiling resources...
> Linking...
> Searching libraries
> Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\atlmfc\lib\nafxcwd.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\libcmtd.lib:
> libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined in
> ntdll.lib(ntdll.dll)
> libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
> ntdll.lib(ntdll.dll)
> libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
> ntdll.lib(ntdll.dll)
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\user32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\gdi32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\msimg32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\comdlg32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\winspool.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\advapi32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\shell32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\comctl32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\shlwapi.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\oledlg.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\ole32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\oleaut32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\urlmon.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\atlsd.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\ws2_32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\mswsock.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\oleacc.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\imagehlp.lib:
> Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\atlmfc\lib\nafxcwd.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\libcmtd.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\user32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\gdi32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\msimg32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\comdlg32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\winspool.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\advapi32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\shell32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\comctl32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\shlwapi.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\oledlg.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\ole32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\oleaut32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\urlmon.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\atlsd.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\ws2_32.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\mswsock.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\oleacc.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\PlatformSDK\lib\imagehlp.lib:
> Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
> Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
> Searching C:\Program Files\Microsoft Visual Studio
> 8\VC\atlmfc\lib\nafxcwd.lib:
> Finished searching libraries
> Debug\Ext2FsdApp.exe : fatal error LNK1169: one or more multiply defined
> symbols found
>


 
Reply With Quote
 
I.You
Guest
Posts: n/a

 
      02-13-2007
Thanks for reply.

You mean that do not use VS, but use the DDK?

or is there any DDK build command in VS?

I'm hard to get what you mean because I'm a beginner...

Please explain in detail.

Furthermore, what I'm building is not driver, but application for driver.

so I have to build in VS and I'm using a few DDK functions.


"Maxim S. Shatskih" wrote:

> Do not build kernel-mode drivers from VS. Use the DDK/WDK BUILD command
> instead.
>
> --
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
>
> http://www.storagecraft.com
>
> "I.You" <> wrote in message
> news:0D68B3B8-6827-4265-B742-...
> > Hi.
> >
> > I'm using a few DDK functions in VS2005 to develop FS Driver Application, but
> > I have serious link errors as follow:
> >
> > libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined in
> > ntdll.lib(ntdll.dll)
> > libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
> > ntdll.lib(ntdll.dll)
> > libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
> > ntdll.lib(ntdll.dll)
> >
> >
> > System Environment:
> > Windwos XP Prof. SP2
> > MS Visual Studio 2005
> >
> >
> > I think this is probably the error of when the CRT or MFC
> > library(libcmtd.lib) and DDK one(ntdll.lib) are linked in the wrong order,
> > but not sure.
> >
> > Why I think so is, please see below the order of libs. as building with
> > /verbose:lib option.
> >
> > I think that ntdll.lib should be linked after libcmtd.lib, but I'm not

> sure...
> >
> > How do you everyone think about it?
> >
> > I wish to listen your opinions.
> >
> >
> >
> > ...
> >
> > a few warnings...
> >
> > ...
> >
> > Compiling resources...
> > Linking...
> > Searching libraries
> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\atlmfc\lib\nafxcwd.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\libcmtd.lib:
> > libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined in
> > ntdll.lib(ntdll.dll)
> > libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
> > ntdll.lib(ntdll.dll)
> > libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
> > ntdll.lib(ntdll.dll)
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\user32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\gdi32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\msimg32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\comdlg32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\winspool.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\advapi32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\shell32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\comctl32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\shlwapi.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\oledlg.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\ole32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\oleaut32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\urlmon.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\atlsd.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\ws2_32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\mswsock.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\oleacc.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\imagehlp.lib:
> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\atlmfc\lib\nafxcwd.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\libcmtd.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\user32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\gdi32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\msimg32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\comdlg32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\winspool.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\advapi32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\shell32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\comctl32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\shlwapi.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\oledlg.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\ole32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\oleaut32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\urlmon.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\atlsd.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\ws2_32.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\mswsock.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\oleacc.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\PlatformSDK\lib\imagehlp.lib:
> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
> > Searching C:\Program Files\Microsoft Visual Studio
> > 8\VC\atlmfc\lib\nafxcwd.lib:
> > Finished searching libraries
> > Debug\Ext2FsdApp.exe : fatal error LNK1169: one or more multiply defined
> > symbols found
> >

>
>

 
Reply With Quote
 
Gianluca Varenni
Guest
Posts: n/a

 
      02-13-2007

"I.You" <> wrote in message
news:ACF09AF5-3847-4572-AE2F-...
> Thanks for reply.
>
> You mean that do not use VS, but use the DDK?
>
> or is there any DDK build command in VS?


The only way to integrate the DDK build environment within VS is DDKBUILD.
DDKBUILD is a batch script that VS invokes to compile a driver. dDKBUILD
just basically sets up the DDK build environment and compiles a driver.

>
> I'm hard to get what you mean because I'm a beginner...
>
> Please explain in detail.
>
> Furthermore, what I'm building is not driver, but application for driver.
>


Ok. In this case, depending on what you are developing, you might be able to
use VS.


> so I have to build in VS and I'm using a few DDK functions.
>


Uhm... which functions exactly? Most of the functions documented in the DDK
are kernel mode functions, i.e. they can be invoked from a kernel mode piece
of code only.

Hope it helps
GV


>
> "Maxim S. Shatskih" wrote:
>
>> Do not build kernel-mode drivers from VS. Use the DDK/WDK BUILD
>> command
>> instead.
>>
>> --
>> Maxim Shatskih, Windows DDK MVP
>> StorageCraft Corporation
>>
>> http://www.storagecraft.com
>>
>> "I.You" <> wrote in message
>> news:0D68B3B8-6827-4265-B742-...
>> > Hi.
>> >
>> > I'm using a few DDK functions in VS2005 to develop FS Driver
>> > Application, but
>> > I have serious link errors as follow:
>> >
>> > libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined in
>> > ntdll.lib(ntdll.dll)
>> > libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
>> > ntdll.lib(ntdll.dll)
>> > libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
>> > ntdll.lib(ntdll.dll)
>> >
>> >
>> > System Environment:
>> > Windwos XP Prof. SP2
>> > MS Visual Studio 2005
>> >
>> >
>> > I think this is probably the error of when the CRT or MFC
>> > library(libcmtd.lib) and DDK one(ntdll.lib) are linked in the wrong
>> > order,
>> > but not sure.
>> >
>> > Why I think so is, please see below the order of libs. as building with
>> > /verbose:lib option.
>> >
>> > I think that ntdll.lib should be linked after libcmtd.lib, but I'm not

>> sure...
>> >
>> > How do you everyone think about it?
>> >
>> > I wish to listen your opinions.
>> >
>> >
>> >
>> > ...
>> >
>> > a few warnings...
>> >
>> > ...
>> >
>> > Compiling resources...
>> > Linking...
>> > Searching libraries
>> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\lib\DelayImp.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\atlmfc\lib\nafxcwd.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\lib\libcmtd.lib:
>> > libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined in
>> > ntdll.lib(ntdll.dll)
>> > libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
>> > ntdll.lib(ntdll.dll)
>> > libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
>> > ntdll.lib(ntdll.dll)
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\lib\kernel32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\user32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\gdi32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\msimg32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\comdlg32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\winspool.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\advapi32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\shell32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\comctl32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\shlwapi.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\oledlg.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\ole32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\oleaut32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\urlmon.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\lib\OLDNAMES.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\atlmfc\lib\atlsd.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\ws2_32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\mswsock.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\oleacc.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\imagehlp.lib:
>> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\lib\DelayImp.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\atlmfc\lib\nafxcwd.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\lib\libcmtd.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\lib\kernel32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\user32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\gdi32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\msimg32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\comdlg32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\winspool.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\advapi32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\shell32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\comctl32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\shlwapi.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\oledlg.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\ole32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\oleaut32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\urlmon.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\lib\OLDNAMES.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\atlmfc\lib\atlsd.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\ws2_32.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\mswsock.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\oleacc.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\PlatformSDK\lib\imagehlp.lib:
>> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\lib\DelayImp.lib:
>> > Searching C:\Program Files\Microsoft Visual Studio
>> > 8\VC\atlmfc\lib\nafxcwd.lib:
>> > Finished searching libraries
>> > Debug\Ext2FsdApp.exe : fatal error LNK1169: one or more multiply
>> > defined
>> > symbols found
>> >

>>
>>



 
Reply With Quote
 
I.You
Guest
Posts: n/a

 
      02-13-2007
Thanks a lot for quick reply.

I'm using NtOpenFile, NtQueryVolumeInformationFile, NtClose in VS2005.

I think it's possible to use these functions in VS (including ntddk.h and
linking ntdll.lib etc).

Another way is probably like this:
typedef NTSTATUS (* PNTOPENFILE)(PHANDLE, ACCESS_MASK, ... )
PNTOPENFILE NtOpenFile;
NtOpenFile = (PNTOPENFILE) GetProcAddress( LoadLibrary( "ntdll.dll" ),
"NtOpenFile" );

However, both ways do not work.
Below is errors of the first way, and ones of another way are follow:

Detect.obj : error LNK2019: unresolved external symbol _GetProcAddress
referenced in function _Detect
Detect.obj : error LNK2019: unresolved external symbol _LoadLibrary
referenced in function _Detect
Debug\Ext2FsdApp.exe : fatal error LNK1120: 2 unresolved externals

I linked kernel32.lib which is required in GetProcAddress and LoadLibrary
explicitly.

Please tell me good solutions...




"Gianluca Varenni" wrote:

>
> "I.You" <> wrote in message
> news:ACF09AF5-3847-4572-AE2F-...
> > Thanks for reply.
> >
> > You mean that do not use VS, but use the DDK?
> >
> > or is there any DDK build command in VS?

>
> The only way to integrate the DDK build environment within VS is DDKBUILD.
> DDKBUILD is a batch script that VS invokes to compile a driver. dDKBUILD
> just basically sets up the DDK build environment and compiles a driver.
>
> >
> > I'm hard to get what you mean because I'm a beginner...
> >
> > Please explain in detail.
> >
> > Furthermore, what I'm building is not driver, but application for driver.
> >

>
> Ok. In this case, depending on what you are developing, you might be able to
> use VS.
>
>
> > so I have to build in VS and I'm using a few DDK functions.
> >

>
> Uhm... which functions exactly? Most of the functions documented in the DDK
> are kernel mode functions, i.e. they can be invoked from a kernel mode piece
> of code only.
>
> Hope it helps
> GV
>
>
> >
> > "Maxim S. Shatskih" wrote:
> >
> >> Do not build kernel-mode drivers from VS. Use the DDK/WDK BUILD
> >> command
> >> instead.
> >>
> >> --
> >> Maxim Shatskih, Windows DDK MVP
> >> StorageCraft Corporation
> >>
> >> http://www.storagecraft.com
> >>
> >> "I.You" <> wrote in message
> >> news:0D68B3B8-6827-4265-B742-...
> >> > Hi.
> >> >
> >> > I'm using a few DDK functions in VS2005 to develop FS Driver
> >> > Application, but
> >> > I have serious link errors as follow:
> >> >
> >> > libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined in
> >> > ntdll.lib(ntdll.dll)
> >> > libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
> >> > ntdll.lib(ntdll.dll)
> >> > libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
> >> > ntdll.lib(ntdll.dll)
> >> >
> >> >
> >> > System Environment:
> >> > Windwos XP Prof. SP2
> >> > MS Visual Studio 2005
> >> >
> >> >
> >> > I think this is probably the error of when the CRT or MFC
> >> > library(libcmtd.lib) and DDK one(ntdll.lib) are linked in the wrong
> >> > order,
> >> > but not sure.
> >> >
> >> > Why I think so is, please see below the order of libs. as building with
> >> > /verbose:lib option.
> >> >
> >> > I think that ntdll.lib should be linked after libcmtd.lib, but I'm not
> >> sure...
> >> >
> >> > How do you everyone think about it?
> >> >
> >> > I wish to listen your opinions.
> >> >
> >> >
> >> >
> >> > ...
> >> >
> >> > a few warnings...
> >> >
> >> > ...
> >> >
> >> > Compiling resources...
> >> > Linking...
> >> > Searching libraries
> >> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\lib\DelayImp.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\atlmfc\lib\nafxcwd.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\lib\libcmtd.lib:
> >> > libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined in
> >> > ntdll.lib(ntdll.dll)
> >> > libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
> >> > ntdll.lib(ntdll.dll)
> >> > libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
> >> > ntdll.lib(ntdll.dll)
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\lib\kernel32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\user32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\gdi32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\msimg32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\comdlg32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\winspool.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\advapi32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\shell32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\comctl32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\shlwapi.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\oledlg.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\ole32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\oleaut32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\urlmon.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\lib\OLDNAMES.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\atlmfc\lib\atlsd.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\ws2_32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\mswsock.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\oleacc.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\imagehlp.lib:
> >> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\lib\DelayImp.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\atlmfc\lib\nafxcwd.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\lib\libcmtd.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\lib\kernel32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\user32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\gdi32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\msimg32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\comdlg32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\winspool.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\advapi32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\shell32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\comctl32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\shlwapi.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\oledlg.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\ole32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\oleaut32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\urlmon.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\lib\OLDNAMES.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\atlmfc\lib\atlsd.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\ws2_32.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\mswsock.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\oleacc.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\PlatformSDK\lib\imagehlp.lib:
> >> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\lib\DelayImp.lib:
> >> > Searching C:\Program Files\Microsoft Visual Studio
> >> > 8\VC\atlmfc\lib\nafxcwd.lib:
> >> > Finished searching libraries
> >> > Debug\Ext2FsdApp.exe : fatal error LNK1169: one or more multiply
> >> > defined
> >> > symbols found
> >> >
> >>
> >>

>
>
>

 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      02-13-2007
> You mean that do not use VS, but use the DDK?

Yes. VS can only be used as text editor, or as a launcher of the DDK's BUILD
using DDKBUILD.BAT

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation

http://www.storagecraft.com

 
Reply With Quote
 
Gianluca Varenni
Guest
Posts: n/a

 
      02-13-2007

"I.You" <> wrote in message
news:09BF3D77-8CA1-47E2-A36B-...
> Thanks a lot for quick reply.
>
> I'm using NtOpenFile, NtQueryVolumeInformationFile, NtClose in VS2005.
>
> I think it's possible to use these functions in VS (including ntddk.h and
> linking ntdll.lib etc).
>
> Another way is probably like this:
> typedef NTSTATUS (* PNTOPENFILE)(PHANDLE, ACCESS_MASK, ... )
> PNTOPENFILE NtOpenFile;
> NtOpenFile = (PNTOPENFILE) GetProcAddress( LoadLibrary( "ntdll.dll" ),
> "NtOpenFile" );
>
> However, both ways do not work.
> Below is errors of the first way, and ones of another way are follow:
>
> Detect.obj : error LNK2019: unresolved external symbol _GetProcAddress
> referenced in function _Detect
> Detect.obj : error LNK2019: unresolved external symbol _LoadLibrary
> referenced in function _Detect
> Debug\Ext2FsdApp.exe : fatal error LNK1120: 2 unresolved externals
>
> I linked kernel32.lib which is required in GetProcAddress and LoadLibrary
> explicitly.
>
> Please tell me good solutions...
>


You should *not* use the Nt*** functions in user mode (I don't think you can
use them in kernel mode al well, in kernel mode you would use ZwOpenFile and
such). Those are undocumented functions (although everyone knows about
them). You should use CreateFile, OpenFile and similar.

Hope it helps
GV

>
>
>
> "Gianluca Varenni" wrote:
>
>>
>> "I.You" <> wrote in message
>> news:ACF09AF5-3847-4572-AE2F-...
>> > Thanks for reply.
>> >
>> > You mean that do not use VS, but use the DDK?
>> >
>> > or is there any DDK build command in VS?

>>
>> The only way to integrate the DDK build environment within VS is
>> DDKBUILD.
>> DDKBUILD is a batch script that VS invokes to compile a driver. dDKBUILD
>> just basically sets up the DDK build environment and compiles a driver.
>>
>> >
>> > I'm hard to get what you mean because I'm a beginner...
>> >
>> > Please explain in detail.
>> >
>> > Furthermore, what I'm building is not driver, but application for
>> > driver.
>> >

>>
>> Ok. In this case, depending on what you are developing, you might be able
>> to
>> use VS.
>>
>>
>> > so I have to build in VS and I'm using a few DDK functions.
>> >

>>
>> Uhm... which functions exactly? Most of the functions documented in the
>> DDK
>> are kernel mode functions, i.e. they can be invoked from a kernel mode
>> piece
>> of code only.
>>
>> Hope it helps
>> GV
>>
>>
>> >
>> > "Maxim S. Shatskih" wrote:
>> >
>> >> Do not build kernel-mode drivers from VS. Use the DDK/WDK BUILD
>> >> command
>> >> instead.
>> >>
>> >> --
>> >> Maxim Shatskih, Windows DDK MVP
>> >> StorageCraft Corporation
>> >>
>> >> http://www.storagecraft.com
>> >>
>> >> "I.You" <> wrote in message
>> >> news:0D68B3B8-6827-4265-B742-...
>> >> > Hi.
>> >> >
>> >> > I'm using a few DDK functions in VS2005 to develop FS Driver
>> >> > Application, but
>> >> > I have serious link errors as follow:
>> >> >
>> >> > libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined
>> >> > in
>> >> > ntdll.lib(ntdll.dll)
>> >> > libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
>> >> > ntdll.lib(ntdll.dll)
>> >> > libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
>> >> > ntdll.lib(ntdll.dll)
>> >> >
>> >> >
>> >> > System Environment:
>> >> > Windwos XP Prof. SP2
>> >> > MS Visual Studio 2005
>> >> >
>> >> >
>> >> > I think this is probably the error of when the CRT or MFC
>> >> > library(libcmtd.lib) and DDK one(ntdll.lib) are linked in the wrong
>> >> > order,
>> >> > but not sure.
>> >> >
>> >> > Why I think so is, please see below the order of libs. as building
>> >> > with
>> >> > /verbose:lib option.
>> >> >
>> >> > I think that ntdll.lib should be linked after libcmtd.lib, but I'm
>> >> > not
>> >> sure...
>> >> >
>> >> > How do you everyone think about it?
>> >> >
>> >> > I wish to listen your opinions.
>> >> >
>> >> >
>> >> >
>> >> > ...
>> >> >
>> >> > a few warnings...
>> >> >
>> >> > ...
>> >> >
>> >> > Compiling resources...
>> >> > Linking...
>> >> > Searching libraries
>> >> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\lib\DelayImp.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\atlmfc\lib\nafxcwd.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\lib\libcmtd.lib:
>> >> > libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined
>> >> > in
>> >> > ntdll.lib(ntdll.dll)
>> >> > libcmtd.lib(sscanf.obj) : error LNK2005: _sscanf already defined in
>> >> > ntdll.lib(ntdll.dll)
>> >> > libcmtd.lib(atox.obj) : error LNK2005: _atoi already defined in
>> >> > ntdll.lib(ntdll.dll)
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\lib\kernel32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\user32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\gdi32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\msimg32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\comdlg32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\winspool.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\advapi32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\shell32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\comctl32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\shlwapi.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\lib\uuid.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\oledlg.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\ole32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\oleaut32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\urlmon.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\lib\OLDNAMES.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\atlmfc\lib\atlsd.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\ws2_32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\mswsock.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\oleacc.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\imagehlp.lib:
>> >> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\lib\DelayImp.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\atlmfc\lib\nafxcwd.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\lib\libcmtd.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\lib\kernel32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\user32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\gdi32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\msimg32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\comdlg32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\winspool.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\advapi32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\shell32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\comctl32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\shlwapi.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\lib\uuid.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\oledlg.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\ole32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\oleaut32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\urlmon.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\lib\OLDNAMES.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\atlmfc\lib\atlsd.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\ws2_32.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\mswsock.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\oleacc.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\PlatformSDK\lib\imagehlp.lib:
>> >> > Searching C:\WINDDK\3790.1830\lib\wxp\i386\ntdll.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\lib\DelayImp.lib:
>> >> > Searching C:\Program Files\Microsoft Visual Studio
>> >> > 8\VC\atlmfc\lib\nafxcwd.lib:
>> >> > Finished searching libraries
>> >> > Debug\Ext2FsdApp.exe : fatal error LNK1169: one or more multiply
>> >> > defined
>> >> > symbols found
>> >> >
>> >>
>> >>

>>
>>
>>



 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      02-14-2007
> You should *not* use the Nt*** functions in user mode (I don't think you can
> use them in kernel mode al well, in kernel mode you would use ZwOpenFile and
> such). Those are undocumented functions (although everyone knows about
> them). You should use CreateFile, OpenFile and similar.


Well, ntdll!NtQueryVolumeInformationFile is a good solution for "get disk free
space by the DASD handle to this disk", the functionality absent in Win32.

GetDiskFreeSpaceEx wants a name, and is - internally - NtOpenFile +
NtQueryVolumeInformationFile.

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation

http://www.storagecraft.com

 
Reply With Quote
 
I.You
Guest
Posts: n/a

 
      02-14-2007
Thanks a lot, Maxim and Gianluca.

I will find another way...



"Maxim S. Shatskih" wrote:

> > You mean that do not use VS, but use the DDK?

>
> Yes. VS can only be used as text editor, or as a launcher of the DDK's BUILD
> using DDKBUILD.BAT
>
> --
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
>
> http://www.storagecraft.com
>
>

 
Reply With Quote
 
jobers
Guest
Posts: n/a

 
      03-21-2007
I had a similar problem. This following link discusses the issue with
visual c++ and the order in which MFC and ATL libraries are linked.

http://support.microsoft.com/kb/148652

What I ended up doing is on Project -> Properties -> Linker -> Input,
adding the library the linker was complaining about to the Additional
Dependencies section, which forces the order of libraries being linked
somehow. This worked for me, hope it helps!


On Feb 14, 2:25 am, I.You <I...@discussions.microsoft.com> wrote:
> Thanks a lot, Maxim and Gianluca.
>
> I will find another way...
>
> "Maxim S. Shatskih" wrote:
> > > You mean that do not use VS, but use the DDK?

>
> > Yes. VS can only be used as text editor, or as a launcher of the DDK's BUILD
> > using DDKBUILD.BAT

>
> > --
> > Maxim Shatskih, Windows DDK MVP
> > StorageCraft Corporation
> > m...@storagecraft.com
> >http://www.storagecraft.com



 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
ntdll.dll error when i run a program aliimran General Windows Vista Discussion 0 01-21-2009 03:07 PM
ntdll.dll error 19paulius91 Windows Vista General Discussion 2 12-12-2008 02:15 PM
ntdll.dll fault Donaldo Windows Vista General Discussion 5 05-16-2008 01:33 AM
Vista Upgrade ntdll.dll DaveD Windows Vista Installation 3 03-08-2007 09:55 AM
Dreamweaver APPCRASH in ntdll.dll Alex Windows Vista General Discussion 8 02-13-2007 11:51 PM



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59