我的程序调用了一个dll,通过接口,调用函数来实现功能。
代码如下;
typedef bool (CALLBACK* GetClientClass)(CeTechClient*& pClass); CString strDllPath;
xds_getXtEnvironment("edms\\eTechClient.dll", sptFileName);//调用dll
strDllPath.Format("%s", sptFileName);
m_hModule = ::LoadLibrary(strDllPath);
if(m_hModule != NULL)
{
GetClientClass lpFunc = NULL;
lpFunc = (GetClientClass)GetProcAddress(m_hModule, _T("GetClientClass"));
if (lpFunc == NULL)
{
::FreeLibrary(m_hModule);
m_hModule = NULL;
}
else
{
if (!lpFunc(m_pClient))//实例化对象
{
::FreeLibrary(m_hModule);
m_hModule = NULL;
}
}
if (!m_pClient->IsConnected()) //链接服务器
{
BOOL bConnectedServer = false;
while (bConnectedServer == false)
{
if (m_pClient->Connect())//链接服务器
{
bConnectedServer = true;
}
else
{
if (IDNO == AfxMessageBox("无法连接服务器,是否重新指定服务器?",MB_YESNO))
{
return false;
}
}
}
}编译连接都可以通过,但是执行的时候,就会弹出错误信息框:socket notification sink:××.exe 应用程序错误。 "****"指令引用的"****"内存,该内存不能为read。这个错误怎么回事,我对socket编程这方面不是很明白,请大家帮忙。
代码如下;
typedef bool (CALLBACK* GetClientClass)(CeTechClient*& pClass); CString strDllPath;
xds_getXtEnvironment("edms\\eTechClient.dll", sptFileName);//调用dll
strDllPath.Format("%s", sptFileName);
m_hModule = ::LoadLibrary(strDllPath);
if(m_hModule != NULL)
{
GetClientClass lpFunc = NULL;
lpFunc = (GetClientClass)GetProcAddress(m_hModule, _T("GetClientClass"));
if (lpFunc == NULL)
{
::FreeLibrary(m_hModule);
m_hModule = NULL;
}
else
{
if (!lpFunc(m_pClient))//实例化对象
{
::FreeLibrary(m_hModule);
m_hModule = NULL;
}
}
if (!m_pClient->IsConnected()) //链接服务器
{
BOOL bConnectedServer = false;
while (bConnectedServer == false)
{
if (m_pClient->Connect())//链接服务器
{
bConnectedServer = true;
}
else
{
if (IDNO == AfxMessageBox("无法连接服务器,是否重新指定服务器?",MB_YESNO))
{
return false;
}
}
}
}编译连接都可以通过,但是执行的时候,就会弹出错误信息框:socket notification sink:××.exe 应用程序错误。 "****"指令引用的"****"内存,该内存不能为read。这个错误怎么回事,我对socket编程这方面不是很明白,请大家帮忙。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货