[Dcmlib] new DicomDir syntax: aka Deprecation pass

Luca Picello luca.picello at libero.it
Wed Jul 13 21:32:25 CEST 2005


Hi Mathieu,
Borland compiler uses following syntax to produce compiler-warnings to 
use for deprecated functions.

 From Borland Help:

The #pragma message compiler directive allows source code to emit 
warnings and errors just as the compiler does. Use #pragma message to 
specify a user-defined message within your program code, using one of 
the following formats.
If you have a variable number of string constants, use:

#pragma message( "hi there" )

#pragma message( "hi" " there" )

To write text following a message, use:
#pragma message text
To expand a previously defined value, use:
#pragma message (text)

#define text "a test string"

#pragma message (text)

For example, to display these messages on a button, use:

void __fastcall TForm1::Button1Click(TObject *Sender)

{
    #pragma message( "hi there 1" )
    #pragma message( "hi " "there 2" )
    #pragma message hi there 3
    #define text "a test string"
    #pragma message (text)
}

To display the messages in the IDE, choose Projects|Options|Compiler, 
click the Compiler tab, and check the Show general messages check box.




Mathieu Malaterre wrote:

> Luca,
>
>     Hum this is pretty bad. I thought the old functionanlities where 
> being kept back...
>     I would like then to introduce a deprecation mechanism that will 
> prevent event like this. A number of compilers (well in fact only 
> gcc/and visual studio but there are the main one), support a notion of 
> 'deprecated functions'. Therefore at *compiler* time the code produces 
> warning like:
>
> ..this function is deprecated...
>
> But the at run time the code still works ok.
>
>
>     JP can we keep the old API or is this too much troubles ? Is this 
> already broken ?
>
> Thanks,
> Mathieu
>     
> Luca Picello wrote:
>
>> Hi all,
>> Syncronizing with today's CVS my code is not working anymore.
>> Its code is very easy and I wonder if you can help me on make it 
>> working again.
>>
>> gdcm::DicomDir *e1;
>> gdcm::DicomDirPatient *pa;
>>
>> e1 = new gdcm::DicomDir( fold.c_str() , true ); // DEPRECATED OLD 
>> GDCM SYNTAX
>>
>> // NEW SYNTAX AS DESCRIBED IN ML BY JP:
>> e1 = new gdcm::DicomDir();
>> e1->SetDirectoryName(fold.c_str());
>>
>> ---
>>
>> if( e1->IsReadable() )
>> or
>> pa = e1->GetFirstPatient();
>> now both fails!!
>>
>> I do have also access violation error doing (because of failure):
>>  delete e1;
>>
>> at: gdcmDicomDir.cxx at line 163 ( delete MetaElems; in 
>> DicomDir::~DicomDir() )
>>
>> thank you all,
>> Luca
>>
>> ps: does anybody encoured my latest reported bug on halt on loading 2 
>> datasets?
>> I can prepare a simple test when gdcm will be functional to me again...
>>
>>
>> _______________________________________________
>> Dcmlib mailing list
>> Dcmlib at creatis.insa-lyon.fr
>> http://www.creatis.insa-lyon.fr/mailman/listinfo/dcmlib
>>
>
> .
>




More information about the Dcmlib mailing list