From: yougz Date: Thu, 7 Nov 2002 17:22:00 +0000 (+0000) Subject: First try on win32 X-Git-Tag: April2003~86 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=1aa2bb207fb6b9ce78f35e7547dd4c770e516adb;p=gdcm.git First try on win32 --- diff --git a/src/gdcm.h b/src/gdcm.h index 549dca95..82df4e54 100644 --- a/src/gdcm.h +++ b/src/gdcm.h @@ -16,10 +16,12 @@ // the declaration once you provided the definition of the method... #include +#include #include // For size_t #include #include + // The requirement for the hash table (or map) that we shall use: // 1/ First, next, last (iterators) // 2/ should be sortable (i.e. sorted by TagKey). This condition @@ -28,8 +30,8 @@ // 3/ Make sure we can setup some default size value, which should be // around 4500 entries which is the average dictionary size (said JPR) #include - - +using namespace std; +#define GDCM_EXPORT __declspec( dllexport ) // Tag based hash tables. // We shall use as keys the strings (as the C++ type) obtained by // concatenating the group value and the element value (both of type @@ -40,7 +42,7 @@ // gdcmDictEntry::TranslateToKey for this conversion function. typedef string TagKey; -class gdcmDictEntry { +class GDCM_EXPORT gdcmDictEntry { private: guint16 group; // e.g. 0x0010 guint16 element; // e.g. 0x0010 @@ -70,7 +72,7 @@ private: public: //CLEANME gdcmDictEntry(); gdcmDictEntry(guint16 group, guint16 element, - string vr, string fourth, string vr); + string vr, string fourth, string name); static TagKey TranslateToKey(guint16 group, guint16 element); guint16 GetGroup(void) { return group;}; guint16 GetElement(void){return element;}; @@ -87,7 +89,7 @@ typedef map TagHT; // entries. There should be a single public dictionary (THE dictionary of // the actual DICOM v3) but as many shadow dictionaries as imagers // combined with all software versions... -class gdcmDict { +class GDCM_EXPORT gdcmDict { string name; string filename; TagHT entries; @@ -104,7 +106,7 @@ public: // * having many in memory representations of the same dictionary. typedef string DictKey; typedef map DictSetHT; -class gdcmDictSet { +class GDCM_EXPORT gdcmDictSet { private: string DictPath; // Directory path to dictionaries DictSetHT dicts; @@ -128,7 +130,7 @@ public: // The dicom header of a Dicom file contains a set of such ELement VALUES // (when successfuly parsed against a given Dicom dictionary) -class ElValue { +class GDCM_EXPORT ElValue { private: gdcmDictEntry *entry; guint32 LgrElem; @@ -155,7 +157,7 @@ public: typedef map TagElValueHT; typedef map TagElValueNameHT; // Container for a set of succefully parsed ElValues. -class ElValSet { +class GDCM_EXPORT ElValSet { // We need both accesses with a TagKey and the Dicentry.Name TagElValueHT tagHt; TagElValueNameHT NameHt; @@ -183,7 +185,7 @@ typedef map VRHT; // Value Representation Hash Table // Notes: // * the gdcmHeader::Set*Tag* family members cannot be defined as protected // (Swig limitations for as Has_a dependency between gdcmFile and gdcmHeader) -class gdcmHeader { +class GDCM_EXPORT gdcmHeader { //FIXME sw should be qn EndianType !!! //enum EndianType { //LittleEndian, @@ -263,7 +265,7 @@ public: // TODO Swig string GetPubElValRepByName(string TagName); // TODO Swig string GetPubElValRepByNumber(guint16 group, guint16 element); TagElValueHT & GetPubElVal(void) { return PubElVals.GetTagHt(); }; - void PrintPubElVal(ostream & os = std::cout); + void PrintPubElVal(ostream & os = cout); void PrintPubDict(ostream &); // Same thing with the shadow : @@ -294,7 +296,7 @@ public: ////// QUESTION: this looks still like an open question wether the ////// relationship between a gdcmFile and gdcmHeader is of ////// type IS_A or HAS_A ! -class gdcmFile: gdcmHeader +class GDCM_EXPORT gdcmFile: gdcmHeader { private: void* Data; diff --git a/src/gdcmDictSet.cxx b/src/gdcmDictSet.cxx index c8f594b3..814ca802 100644 --- a/src/gdcmDictSet.cxx +++ b/src/gdcmDictSet.cxx @@ -30,7 +30,8 @@ int gdcmDictSet::LoadDicomV3Dict(void) { int gdcmDictSet::LoadDictFromFile(string FileName, DictKey Name) { gdcmDict *NewDict = new gdcmDict(FileName.c_str()); - dicts[Name] = NewDict; + dicts[Name] = NewDict; + return 0; } void gdcmDictSet::Print(ostream& os) { diff --git a/src/gdcmHeader.cxx b/src/gdcmHeader.cxx index 4cdeeebd..856e6f45 100644 --- a/src/gdcmHeader.cxx +++ b/src/gdcmHeader.cxx @@ -623,7 +623,7 @@ void gdcmHeader::LoadElements(void) { LoadElementValue(tag->second); } -void gdcmHeader::PrintPubElVal(ostream & os = std::cout) { +void gdcmHeader::PrintPubElVal(ostream & os) { PubElVals.Print(os); } diff --git a/src/gdcmUtil.cxx b/src/gdcmUtil.cxx index 16653989..c6a7576e 100644 --- a/src/gdcmUtil.cxx +++ b/src/gdcmUtil.cxx @@ -1,35 +1,35 @@ #include #include "gdcmUtil.h" -gdcmDebug::gdcmDebug(int level = 0) { +gdcmDebug::gdcmDebug(int level) { DebugLevel = level; } -void gdcmDebug::Verbose(int Level, const char * Msg1, const char * Msg2 = "") { +void gdcmDebug::Verbose(int Level, const char * Msg1, const char * Msg2) { if (Level > DebugLevel) return ; cerr << Msg1 << ' ' << Msg2 << '\n'; } void gdcmDebug::Assert(int Level, bool Test, - const char * Msg1, const char * Msg2 = "") { + const char * Msg1, const char * Msg2) { if (Level > DebugLevel) return ; if (!Test) cerr << Msg1 << ' ' << Msg2 << '\n'; } -void gdcmDebug::Error( bool Test, const char * Msg1, const char * Msg2 = "") { +void gdcmDebug::Error( bool Test, const char * Msg1, const char * Msg2) { if (!Test) return; std::cerr << Msg1 << ' ' << Msg2 << '\n'; - std::exit(1); + exit(1); } -void gdcmDebug::Error(const char* Msg1, const char* Msg2 ="", - const char* Msg3 ="") { +void gdcmDebug::Error(const char* Msg1, const char* Msg2, + const char* Msg3) { std::cerr << Msg1 << ' ' << Msg2 << ' ' << Msg3 << '\n'; - std::exit(1); + exit(1); } gdcmDebug dbg; diff --git a/src/gdcmUtil.h b/src/gdcmUtil.h index d06e8cde..63025122 100644 --- a/src/gdcmUtil.h +++ b/src/gdcmUtil.h @@ -1,15 +1,17 @@ #include +using namespace std; + class gdcmDebug { private: int DebugLevel; public: - gdcmDebug(int); + gdcmDebug(int = 0); void Verbose(int, const char*, const char* =""); void Error(bool, const char*, const char* =""); void Error(const char*, const char* ="", const char* =""); void Assert(int, bool, const char*, const char*); }; -istream& eatwhite(istream& is); +istream & eatwhite(istream & is); extern gdcmDebug dbg;