2013-02-28 81 views
1

我一直在谷歌搜索整個早上,所有我找不到我在找什麼。我在Visual Studio中爲MFC修改了常規DLL。也就是說,在項目嚮導,我選我在哪裏實現我的MFC DLL函數?

Win32 Project -> DLL -> MFC 

我做只要點擊向導中的主力名單,這是所有的在線教程描述了MFC DLL。

我的問題很簡單。在.cpp文件中,我只需要知道我是否應該實現我的方法(在.h文件中聲明)內部的外部的_tmain函數。 裏面有一個評論,說

//TODO: code your applications behavior here 

,但我不知道這是我的地方去實現。

僅供參考,這裏是.cpp文件:

​​
+0

DLLs不包含主要函數...如果MFC不同,會很好奇。 – 2013-02-28 14:46:14

+0

我在想,這裏的_tmain函數只是爲了與MFC兼容,這意味着要在外部實現我的方法。但他們並沒有說實施它們的地方,所以我不太確定... – xcdemon05 2013-02-28 14:47:39

+0

檢查[this](http://www.codeproject.com/Articles/2516/Creating-and-consuming-MFC- DLLs-for-Beginners)文章了。 – 2013-02-28 14:49:06

回答

1

既然你無法實現的功能/其它功能的方法裏面執行方法需要在_tmain功能外去。

您引用的註釋塊可以替換爲提供庫的初始化實現。

所以,如果你聲明像SayHello的功能,這可能看起來像這樣:

testmfcdllblah.h

// Declaration 
void SayHello(void); 

testmfcdllblah.cpp

void _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) 
{ 
    // .. all the other stuff .. 

    // TODO: code your application's behavior here. 
    SayHello(); 

    // .. the rest of the other stuff .. 
} 

void SayHello() 
{ 
    AfxMessageBox("Hello!"); 
} 
1

在C++中,不能定義局部功能。你永遠不會在_tmain中實現任何函數。

當您使用嚮導來創建DLL時,您應該添加一個頭文件來定義您的DLL接口。你應該在你實現函數的地方添加一個.CPP源文件。

您可以呼叫在那個地方功能,你找到

// TODO: change error code to suit your needs 

BTW:我不知道爲什麼一個動態鏈接庫,嚮導將創建一個主要功能。

+2

因爲DLL也可以定義入口點;)當它們被加載到進程中時,這可以用來初始化它們。據我記得MFC使用它來初始化COM(和其他幾個資源)... – Carsten 2013-02-28 14:58:31

相關問題