2013-08-26 34 views
-1

我已經以這種方式創造了一個表單(form的.h文件被命名爲Example):將代碼放在.cpp文件

這是從形式的默認代碼:

namespace ExampleNamespace{ 

public ref class Example : public System::Windows::Forms::Form 
{ 
    public: 
     void DoSomething() 
     { 
       // code here 
     } 
}; 
} 

我能這樣嗎?

創建一個新的.cpp文件並命名爲Example.cpp我把這裏的所有代碼放在.cpp中?這樣不行。

namespace ExampleNamespace{ 

public ref class Example : public System::Windows::Forms::Form 
{ 
    public: 
     void DoSomething(); //if i try in this way I will have the error from above 
}; 
} 

Example.cpp

#include "Example.h" 

void Example::DoSomething() 
{ 
    //code here 
} 

如果我嘗試在窗體中添加public: void DoSomething();我有這樣的錯誤:

error LNK2020: unresolved token (060000BB) ExampleNamespace.Example::DoSomething 
+0

你有什麼問題嗎?你有什麼嘗試?當你說「不工作」時,如果你期望得到適當的幫助,你需要更具體(錯誤信息,編譯器輸出,...) – codeling

+0

這不是C++代碼,它是[C++/CX](http:/ /en.wikipedia.org/wiki/C%2B%2B/CX)。 –

+1

我敢打賭,編譯器並沒有說「不行」。我敢打賭編譯器給出了一個有用的錯誤信息。你可以看到這個消息,但我們不能。請修正您的問題中的缺陷。, –

回答

0

我得到了答案,你需要包括命名空間包括後.cpp文件中的.h文件如下所示:

#include "Example.h" 

using namespace ExampleNamespace; 

而在你需要把這段代碼是* .h文件:

#ifndef _EXAMPLE_H_ 
#define _EXAMPLE_H_ 

#endif 

這樣的:

#ifndef _EXAMPLE_H_ 
#define _EXAMPLE_H_ 

namespace ExampleNamespace{ 

public ref class Example : public System::Windows::Forms::Form 
{ 
    public: 
     void DoSomething() 
     { 
       // code here 
     } 
}; 
} 

#endif