2013-02-21 58 views
1

我是WinAPI編程的新手,並且已經編寫了用於屏幕截圖的Win32應用程序。當我運行該程序時,光標立即變成十字準線,我可以點擊並拖動以捕捉屏幕的一部分並將其保存到文件中。但是,我現在想修改我的程序,使其不包含主要方法(WinMain),並將其轉化爲對象類而不是應用程序類,因此我可以從其他程序調用函數。我一直無法找到一個很好的資源來說明如何做到這一點,因爲我相信WinMain在底層實現了特殊的功能,所以我不能簡單地改變方法的名稱。將Win32應用程序轉換爲對象

任何人都可以提出一些很好的資源或教程來解決這個問題嗎?

回答

2

有很多方法可以做到這一點,但你的拳頭移動退一萬步:

如何yopu期待你的「節目」(讓我們繼續調用方式)被稱爲? 使用哪些參數和返回類型?

然後,你想暴露什麼樣的API?頭文件中的C++類?一個靜態庫的C++類? 從DLL導出的C函數?一個COM對象?

有很多關於庫或DLL或COM庫的樣子(只是嘗試Google這些關鍵字)的示例。

簡單的方法很可能是建立一個庫或DLL項目(大多數IDE都提供了空骨架嚮導),而不是粘貼需要離開的相關代碼,讓它從暴露的函數或類方法。

只有當你決定你的「對象」應該有哪個「形式」後,才能給出更準確的答案。

+0

感謝您的回覆!那麼,最終我希望我的程序返回一個字符串。它需要採取的唯一參數是需要最小化的窗口的id或HWND。 – user1177250 2013-02-21 11:37:54

+0

通過什麼方法你打算從另一個程序調用一個程序中的功能?該決定將決定你接下來要走哪條路。 – 2013-02-21 13:20:43

+0

我正在嘗試爲瀏覽器編寫一個截屏插件,它需要本機代碼才能捕獲任何窗口/屏幕部分,而不僅僅是瀏覽器窗口。 因爲我剛剛接觸Windows編程,所以我首先實現了作爲獨立應用程序的功能,以便熟悉語法等。我一直在使用[this](http:// http://msdn.microsoft.com /en-us/library/ms235636(v=vs.80).aspx)啓動dll的工作。我想讓我的屏幕捕獲(與Windows和WndProcs)在DLL中,並能夠從另一個C++文件調用它。 – user1177250 2013-02-22 16:04:04