MSVC6 MFC中如何使用dcmtk3.5.4

MSVC6 MFC中如何使用dcmtk3.5.4

0.准备工作
0.1 去http://www.dcmtk.org/dcmtk.php.en下载DCMTK 3.5.4 - source code and documentation

和一个支持库压缩文件,这个文件不能用页面上的这个DCMTK 3.5.4 - support libraries for

Windows,因为它是用/MT和/MTd编译的。也不能用页面上的这个DCMTK - user contributions,因

为那个只能用于vs2005,可用网友simeon提供的那个,是在vs6下用/MD和/MDd选项编译的,但是不

支持xml和openssl

0.2 更改dcmtk-3.5.4下的CMakeList.txt中的/MT和/MTd为/MD和/MDd,因为MFC必须使用

Multithreaded DLL

0.3 用CMake制作工程文件,这里只能将xml和openssl设为off,原因见上面。在VC中打开工程文件

dcmtk.dsw,并编译。编译完后再打开项目文件INSTALL.dsp,编译后会生成一个dcmtk-3.5.4-

win32-i386的目录,其中包括所有可用的lib和include头文件


1.选择project settings中的C/C++,设置下面两项:
1.1 Category: Code Generation的Use run-time library选择Debug Multithreaded DLL,在MFC

下为默认选项

1.2 Preprocessor的Additional include directories加上
D:/dcmtk-3.5.4-win32-i386/include


2.选择project settings中的link,选择Category为Input,设置下面两项:
2.1 在Additional library path中添加
D:/dcmtk-3.5.4-win32-i386/lib,D:/dcmtk-3.5.4-win32-i386-support/zlib-1.2.3/lib
其中D:/dcmtk-3.5.4-win32-i386-support为支持库如zlib的安装路径

2.2 在Object/library modules中添加
netapi32.lib wsock32.lib zlib_d.lib ofstd.lib dcmdata.lib
前两个是必须要加的,以支持winsock。

下面是一个例子,显示dicom文件中病人的名字:
#include "dcmtk/dcmdata/dcdeftag.h"
#include "dcmtk/dcmdata/dcfilefo.h"


void CDcmMFCView::OnTryDicom()
{
 CString strName;
 DcmFileFormat fileformat;
 OFCondition status = fileformat.loadFile("IM000007.dcm");
 if (status.good())
 {
   OFString patientsName;
   if (fileformat.getDataset()->findAndGetOFString(DCM_PatientsName,

patientsName).good())
   {
    strName = patientsName.data();
    AfxMessageBox(strName);
  cout << "Patient's Name: " << patientsName << endl;
   } else
  cerr << "Error: cannot access Patient's Name!" << endl;
 } else
   cerr << "Error: cannot read DICOM file (" << status.text() << ")" << endl;
}
 

 

转自:http://blog.csdn.net/chenm91/archive/2007/05/08/1600194.aspx

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值