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); 

}

這樣運行起來的結果就是這樣,某數字公司會檢測到你的注冊

 

測試結果如下圖:

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM