EldoS | Feel safer!

Software components for data protection, secure storage and transfer

_EvtLogSourceName conflict

Also by EldoS: RawDisk
Access locked and protected files in Windows, read and write disks and partitions and more.
Posted: 07/14/2013 23:59:29
by david bennett (Standard support level)
Joined: 03/29/2013
Posts: 50

I am trying to use both Callback File System and Callback Filter in a single executable. I am using the latest release versions of both. When I try to link I get the following message:

1>cbflt.lib(cbfltapi.obj) : error LNK2005: _EvtLogSourceName already defined in cbfs.lib(cbfsapi.obj)

Can this be fixed? It seems there's only one multiply defined symbol so it seems like should be relatively simple matter.
Posted: 07/15/2013 00:51:06
by Eugene Mayevski (EldoS Corp.)

Callback File System and CallbackFilter use a fair number of shared code (helper libraries). However, from time to time the changes are made in this code, and not all products are released with updated code at the same time. This means that at certain periods of time two or more products have different versions of shared code. When you try to link APIs of both products together in one C++ application, and the versions are different, there will be a conflict.

The described conflict is a limitation of static linkage approach, and the only solution is to separate the code that uses both APIs from each other. In other words, you can create one DLL that works with CBFS and another DLL that works with CallbackFilter, and use both DLLs in the same application.

VCL API is subject to the same problem.

In .NET API we provide .NET assemblies which are DLLs and which have the common code included, so the conflict doesn't happen.

Sincerely yours
Eugene Mayevski



Topic viewed 1338 times

Number of guests: 2, registered members: 0, in total hidden: 0


Back to top

As of July 15, 2016 EldoS Corporation will operate as a division of /n software inc. For more information, please read the announcement.

Got it!