2010-07-10 142 views
0

我從來沒有用過dll的(絕對沒有經驗),我想用一種可以以某種方式調試(以某種方式顯示我)調用哪個函數的應用程序替換dll。DLL跟蹤函數調用

所以,如果DLL人有這種類型的代碼(同樣,我沒有經驗)

function test(var1, var2, num3){ 
    //dosomething 
} 

我會

dll.onfunccall = alert(call); 
+0

看看這個帖子http://stackoverflow.com/questions/220515/how-to-intercept-dll-method-calls – 2010-07-10 17:36:48

+0

謝謝,我將有一個看。 – nebkat 2010-07-10 17:41:51

+0

或者這個:http://stackoverflow.com/questions/3189117/how-to-listen-to-dll-function-calls/3189438#3189438 – atzz 2010-07-10 19:36:47

回答

0

你所描述的方面 - 的一個典型應用取代面向編程(AOP)。根據您使用的語言和框架,有AOP框架和容器,它們的唯一功能是以您描述的方式攔截DLL調用,從而允許您在DLL調用之前或之後執行某些操作。

規範的例子是日誌記錄。日誌記錄可能發生在程序中的任何地方,併爲每個DLL調用編寫代碼,以便可以記錄日誌變得遲鈍。但是使用AOP框架,您可以簡單地將所有DLL入口點附加在一起,並讓它們各自調用一個日誌記錄功能。這可以通過許多不同的方式完成。一些AOP框架通過方法屬性來完成它。其他人將代碼注入DLL中。

面向方面的編程全是關於處理cross-cutting concerns

請參見:
http://en.wikipedia.org/wiki/Aspect-oriented_programming

+0

你能舉個例子嗎? – nebkat 2010-07-10 17:57:22

+0

看我的編輯.... – 2010-07-10 18:11:10

+0

事實證明,我不會需要一個intercepter: - |但是,無論如何,我會接受你的答案;-) – nebkat 2010-07-12 17:58:07