1.打開 vs 創建項目
2.添加項目
3.配置 dll(exe的路徑)
4.調試的時候倆個都最好生成一下 不然報錯
項目與 dll 之間的參數傳遞(結構體 函數指針等)
如DEBUG_EVENT 結構體 map<string, pVoidFun> (pVoidFun爲函數指針)
先導出一個函數
實現 這裏要注意的是打印結構體時注意溢出問題
//printf("%08x %08x %08x %08x \n", hPorc, hThread, m_DebugEvent, Funmap); //產生溢出 後面打印的是結構體的數據 因爲後面覆蓋了
printf("%08x %08x %08x %08x \n", hPorc, hThread, &m_DebugEvent, Funmap);
5.調用 (這裏用了點技巧參數爲調用一個函數 函數返回值爲 map)
map<string, pVoidFun> Funmap;
DWORD CCyichang::GetFunmapAddr()
{
return (DWORD)&Funmap;
}
myfun(myCCyichang->hProc, myCCyichang->hThread, myCCyichang->m_DebugEvent, (DWORD)(myCCyichang->GetFunmapAddr())); //地址與類型(DWORD,map<string, pVoidFun>**)無關32 位push4個字節 64 位push 倆遍 也就是 8 個字節 類型只是用來方便使用想怎麼寫就怎麼寫
6.注意一個溢出問題
7.最後注意的是不要懶 dll一般寫也main 函數 不寫可能會報錯