2014-01-25 32 views
-1

我試圖使用這種方式: DLLImport a variable MFC dll 它的工作原理。windows服務無法調用C++本機方法[DllImpor(「myDLL」)]

的問題是C++ dll "myDLL"需要另一個DLL「XDLL」, 我發現 服務當前fodler當服務啓動是system32下,不要在那裏組裝的! 在這種情況下,如果我把"XDLL"SYSTEM32這是可行的......

我需要的是客場不復制任何運行至System32下或其他反正

是否C#窗口服務問題 ?或C++?我該怎麼辦 ?

感謝

+0

只需將它放在與您的服務exe相同的文件夾。然後谷歌「SxS DLL」 –

+0

沒有工作,因爲服務開始時的服務當前fodler是system32而不是組裝的地方! –

+0

so#ta.speot.is,如果您無法回答PLZ,請移除您的(-1)此問題 –

回答

2

如果name指定的DLL只,這是一個沒有完整路徑,那麼Dynamic-Link Library Search Order進場。

有很多ifs和buts,但底線是,如果你把你的可執行文件需要的所有DLL放到與可執行文件相同的目錄中,那麼加載器將能夠找到這些DLL。這是最好的做法,因爲它不需要配置,並且可以確定要加載哪個版本的DLL。