簡體   English   中英

C++ 用 Visual Studio 編譯 windows 服務

[英]C++ Compiling windows service with visual studio

希望你能幫助我。 我得到了一個基於Microsoft 示例的服務的 C++ 源代碼,但我仍然收到 linker 錯誤編譯它:

error LNK2019: unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)

作為 windows 服務的入口點是int _tmain(int argc, TCHAR* argv[])

就我而言,它是void __cdecl _tmain(int argc, TCHAR* argv[]) {... }

有 1 個 header 和 1 個 cpp 文件,其中 class 由服務使用,main.cpp 包含入口點和 c 樣式服務相關代碼。 子系統是沒有設置任何自定義入口點的控制台。 仍然,如果我將經典int main(...)添加到代碼項目編譯中,但服務不會從 windows 服務管理器返回錯誤開始。

請告知如何使用_tmain編譯它。

好的,仍然沒有運氣_tmain 不幸的是,我沒有嘗試定義WINAPI WinMain入口點。

盡管如此,如果您繼續使用wmain程序入口點並添加Richard Critten 提到的用於服務啟動的代碼,SCManager 就可以正常運行。 有關完整的服務示例,請參閱MS doc wmain會強迫你使用 Unicode 但它在 2020 年應該不是這樣的問題。

應根據您的需要設置子系統,無需設置自定義入口點。

感謝大家的評論。

UPD您必須包含tchar.h才能使用_tmain ,因此所有類型的入口點都可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM