zoukankan      html  css  js  c++  java
  • VC++调用大漠插件的方法

    测试环境:Win7 64位 + VC 6.0  

    最近玩一款网页游戏,想着自己做个模拟辅助用用,于是下载了一个大漠插件,但是各种注册就是不成功,通过查阅网上各位前辈的资料,终于将问题解决,现将方法分享给大家,如有什么不正确的地方还请大家指正。

    注意的几点:

    1、大漠插件必须要注册之后才能使用。

    2、注册时要保证dm.dll,在你要注册的路径下。

    3、使用大漠函数时,要加上dm.h头文件

    首先,大漠的DLL,不是普通的DLL,它是一个Active x插件,必需要注册之后才能使用,注册是否成功可以用dm.GetBasePath() 函数看看能否获得正确的路径,获取不到表示注册不成功。

    1、建立一个MFC对话框工程,默认完成就行。

    我们给对话框添加两个按钮

    双击两个对话框添加按钮的响应函数,然后按下快捷键Ctrl + W,打开类向导如图

    在右上角的添加类中选择第二项,添加我们下载的dm.dll,然后出来如下图的添加类向导,OK就可以了

    这时候在VC的类视图列表中就多了一个Idmsoft类

    这个类的源文件就是dm.h dm.cpp,我们可以看到大漠插件提供的接口函数就在这里定义实现的,所以如果我们要在别的源文件中使用这些函数,别忘了包含dm.h头文件。

     

    2、接着我们就来注册大漠插件dm.dll

    首先我们自定义一个注册DLL的函数,该函数最好写成Dlg类的成员函数

    BOOL RegistryDll(CString& szDllPath)   
    {   
    	
        LRESULT (CALLBACK* lpDllEntryPoint)();    
        HINSTANCE hLib =LoadLibrary(szDllPath);   
        if (hLib < (HINSTANCE)HINSTANCE_ERROR)  
    	{
            return FALSE;    
        }
    	(FARPROC&)lpDllEntryPoint = GetProcAddress(hLib, "DllRegisterServer");    
        BOOL bRet = FALSE;   
        if (lpDllEntryPoint != NULL)   
        {   
            HRESULT hr = (*lpDllEntryPoint)();   
            bRet = SUCCEEDED(hr);   
            if (FAILED(hr))   
            {   
    			AfxMessageBox("×¢²áʧ°Ü");
            }   
        }   
        FreeLibrary(hLib);   
        return bRet;   
    } 
    

    然后注册按钮中实现方式如下:

    //注册
    void CMFC_Dlg::OnBtnRegist()

     CString strFilePath;
     char strBuff[256];
     GetCurrentDirectory(256,strBuff);
     strFilePath.Format("%s\dm.dll",strBuff);
     RegistryDll(strFilePath); 
    }

    这样大漠插件就注册完毕了,在测试按钮中我们可以调用它测试一下

    3、测试按钮中代码如下:

    测试之前一定要保证工程目录中有dm.dll  放到dm.h和dm.cpp所在的目录,当然这取决于你注册时的路径。

    void CMFC_Dlg::OnBtnTest()

    {

       Idmsoft dm;  ::CoInitialize(NULL);//初始化线程com库

       dm.CreateDispatch("dm.dmsoft");

       CString strPath = dm.GetBasePath();//获取注册到系统中的dm.dll的路径

          AfxMessageBox(strPath); 

    }

    这样运行起来的结果就是这样,某数字公司会检测到你的注册

    测试结果如下图:

      

  • 相关阅读:
    js中serialize() 序列化表单时自动url编码
    Oracle账户被锁解决:ora-28000:the account is locked
    jvm(二)------各个运行时数据库常见内存溢出分析与模拟
    解决 maven构建的web项目无法在外部Tomcat中运行的问题
    java源码分析之LinkedList(转)
    ArrayList源码剖析
    详解Swing中JTree组件的功能
    java 制作QQ登录界面
    java 类与类之间的关系 及uml图
    java 限定控制台输入值的类型
  • 原文地址:https://www.cnblogs.com/wxl2578/p/3567882.html
Copyright © 2011-2022 走看看