vs 中項目與 dll 一起調試和參數傳遞

1.打開 vs 創建項目
vs 中項目與 dll 一起調試和參數傳遞
2.添加項目
vs 中項目與 dll 一起調試和參數傳遞
vs 中項目與 dll 一起調試和參數傳遞
vs 中項目與 dll 一起調試和參數傳遞
3.配置 dll(exe的路徑)
vs 中項目與 dll 一起調試和參數傳遞
4.調試的時候倆個都最好生成一下 不然報錯

項目與 dll 之間的參數傳遞(結構體 函數指針等)

如DEBUG_EVENT 結構體 map<string, pVoidFun> (pVoidFun爲函數指針)
先導出一個函數
vs 中項目與 dll 一起調試和參數傳遞
實現 這裏要注意的是打印結構體時注意溢出問題

 //printf("%08x  %08x  %08x %08x  \n", hPorc, hThread, m_DebugEvent, Funmap);    //產生溢出 後面打印的是結構體的數據 因爲後面覆蓋了
    printf("%08x  %08x  %08x %08x  \n", hPorc, hThread, &m_DebugEvent, Funmap);

vs 中項目與 dll 一起調試和參數傳遞
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 個字節  類型只是用來方便使用想怎麼寫就怎麼寫

vs 中項目與 dll 一起調試和參數傳遞
vs 中項目與 dll 一起調試和參數傳遞
vs 中項目與 dll 一起調試和參數傳遞
vs 中項目與 dll 一起調試和參數傳遞
6.注意一個溢出問題
vs 中項目與 dll 一起調試和參數傳遞
7.最後注意的是不要懶 dll一般寫也main 函數 不寫可能會報錯
vs 中項目與 dll 一起調試和參數傳遞

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章