自己写了一个DLL,在测试DLL的时候调用DLL里面的类出错!!
错误如下:
Linking...
TestMyDllDlg.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __thiscall CMyStoreScu::SendFile(char *)" (__imp_?SendFile@CMyStoreScu@@QAEHPAD@Z)
Debug/TestMyDll.exe : fatal error LNK1120: 1 unresolved externals
是不是DLL写的有问题???
还是调用方法错误???
调用的代码如下: CMyStoreScu mystore;
DWORD dwVersionNeed=MAKEWORD(1,1);
char *pHostName,*pHostNamePeer;
WSADATA wsadata;
mystore.Init(dwVersionNeed,&wsadata);
mystore.InitializeNetwork();
mystore.CreateAssociationParameters(100);
pHostName=mystore.GetLocalHostName();
pHostNamePeer=pHostName;
mystore.SetPresentationAddress(pHostName,pHostNamePeer);
if(!mystore.ConnectToSCP())
{
return;
}
mystore.SendFile("1.dcm");
包含了相应的头文件和连接了LIB库!!!
怎么回事??
望高手帮解决!谢谢!说详细点!!!!!
错误如下:
Linking...
TestMyDllDlg.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __thiscall CMyStoreScu::SendFile(char *)" (__imp_?SendFile@CMyStoreScu@@QAEHPAD@Z)
Debug/TestMyDll.exe : fatal error LNK1120: 1 unresolved externals
是不是DLL写的有问题???
还是调用方法错误???
调用的代码如下: CMyStoreScu mystore;
DWORD dwVersionNeed=MAKEWORD(1,1);
char *pHostName,*pHostNamePeer;
WSADATA wsadata;
mystore.Init(dwVersionNeed,&wsadata);
mystore.InitializeNetwork();
mystore.CreateAssociationParameters(100);
pHostName=mystore.GetLocalHostName();
pHostNamePeer=pHostName;
mystore.SetPresentationAddress(pHostName,pHostNamePeer);
if(!mystore.ConnectToSCP())
{
return;
}
mystore.SendFile("1.dcm");
包含了相应的头文件和连接了LIB库!!!
怎么回事??
望高手帮解决!谢谢!说详细点!!!!!
你再看看,你在调用时候导出头和导入头的代码写对了吗?
相关函数名称是否一致?
我吧LIB库拷到了,工程目录下面!!!!
还有DLL也考到了该工程目录下面!!
!
#define MYDCMTK_API __declspec(dllexport)
#else
#define MYDCMTK_API __declspec(dllimport)
#endifclass MYDCMTK_API CMyStoreScu
{
public:
CMyStoreScu();
virtual ~CMyStoreScu();
BOOL Init(DWORD dwVersion,LPWSADATA pWsaData);
BOOL InitializeNetwork();//初始化网络
BOOL CreateAssociationParameters(long MaxPDULength);//创建关联参数
BOOL SetAppTitle(const char *pszOurTitle,//设置AE标题
const char *pszPeerTitle,
const char *pszrespondingAPTitle);
char * GetLocalHostName();//获取本地主机名
BOOL SetPresentationAddress(const char *pszHostName,const char *pszPeerHost);//添加地址信息
BOOL AddPresentationContext(T_ASC_PresentationContextID presentationContextID,
const char* abstractSyntax,
const char* transferSyntaxList[],
int transferSyntaxListCount,
T_ASC_SC_ROLE proposedRole = ASC_SC_ROLE_DEFAULT);//加入额外信息
BOOL ConnectToSCP();
BOOL SendFile(char *pFileName);
private:
//data
T_ASC_Parameters *m_params;
T_ASC_Network *m_Net;
T_ASC_Association *m_Assoc;
//method
BOOL StoreSCU(char *szFileName);
DcmFileFormat LoadFile(char *szFileName);
void ReleaseAssociation();
void DestroyAssociation();
void DropNetwork();};
这是我DLL工程里面的代码,请看看,有什么问题??
对DLL还不是很熟悉!!!!
,MYDCMTK_EXPORTS 在哪个文件中定义??
在哪里定义??
#define MYDCMTK_EXPORTS
如果你生成exe时只有这一个错误,应该是h文件与lib文件版本不匹配,重新生成DLL项目,把h文件和lib文件复制过来就可以了。