#define EXPORTDLL _declspec(dllimport)
EXPORTDLL class  CShowDlg //定义CShowDlg类
{
public:
virtual void __stdcall ShowNoteDlg(char* pszText) //定义一个成员函数
{
MessageBox(NULL, pszText, "提示", 0);
}
};CShowDlg* __stdcall GetShowDlg() //定义一个全局函数
{
return new CShowDlg(); //构造一个CShowDlg对象
}void __stdcall ReleaseShowDlg(CShowDlg* pShowDlg) //定义一个全局函数
{
delete pShowDlg; //释放CShowDlg对象
}上述EXPORTDLL即_declspec(dllimport)放在class前和class后有什么不同?

解决方案 »

  1.   

    奇怪,我如果去掉virtual void __stdcall ShowNoteDlg(char* pszText)中的
    virtual则放在前后都没关系,可是一但加上把EXPORTDLL放在Class之后就有问题
      

  2.   


    #define EXPORTDLL _declspec(dllimport) 
    class EXPORTDLL  CShowDlg //定义CShowDlg类
    {
    public:
    virtual void __stdcall ShowNoteDlg(char* pszText) //定义一个成员函数
    {
    MessageBox(NULL, pszText, "提示", 0); 
    }
    };
    只见过放到class后的,没见过放到前面的,另外注意你的调用约定
      

  3.   

    谢谢,我是在一本参考资料上看的。发现放在前面的_declspec(dllexport)去掉也能正常运行,
    应该是资料的原因。而且编译时会给出警告,但没有错误!