//在啊我有以下代码
包括“afxwin.h”
包括“msclr\auto_gcroot.h”
使用命名空间系统;
使用 msclr::auto_gcroot;
命名空间 A
{
公共参考 A 类
{
上市:
虚拟布尔函数();
一个();
〜A();
虚拟布尔连接();
受保护:
DWORD WINAPI threadConnect(void* pParam);
};
公开课 AHelper
{
上市:
auto_gcroot A;
};
}
//在A.cpp我有下面的代码
// 这是主 DLL 文件。
包括“stdafx.h”
包括“啊”
包括“字符串”
包括“流”
包括“stdlib.h”
包括“strsafe.h”
包括“windows.h”
包括“tchar.h”
命名空间 A
{
A::A()
{
m_FuncHandle = mpsNil;
}
A::~A()
{
}
布尔 A::Func()
{
返回真;
}
布尔 A::Connect()
{
AHelper* AHelper;
m_retVal = 假;
AHelper = 新的 AHelper();
AHelper->A = 这个;
HANDLE Handle_Of_Thread = 0;
DWORD dwThreadId;
//DWORD WINAPI threadConnect(void* pParam);
//如果我在这里声明函数声明,我会得到
//错误 LNK2001:无法解析的外部符号“unsigned long __stdcall threadConnect(void *)”(?threadConnect@@YGKPAX@Z)
Handle_Of_Thread = CreateThread (NULL, 0, threadConnect, AHelper, 0, &dwThreadId); // 有了这段代码,我得到了
//error C3867: 'A::A::threadConnect': 函数调用缺少参数列表;使用 '&A::A::threadConnect' 创建指向成员的指针
返回 m_retVal;
}
DWORD WINAPI A::threadConnect(void* pParam)
{
AHelper* AHelper = reinterpret_cast(pParam);
//这里需要调用Func
返回0;
}
}