0
http://www.drdobbs.com/cpp/ccli-threading-part-i/184402018의 자습서를 따라 Visual C++에서 winform의 스레드 프로그래밍을 수행하려고합니다. 나는 Win32 콘솔 프로젝트를 열고 다음과 같이 내가 코드를 배치하는 내부 그것에 빈 CPP 파일을 추가 :Visual C++/CLI의 스레드 프로그램에서 오류가 발생했습니다
- 오류 C2726 :
using namespace System; using namespace System::Threading; public class ThreadX{ int loopStart; int loopEnd; int dispFrequency; public: ThreadX(int startValue, int endValue, int frequency) { loopStart = startValue; loopEnd = endValue; dispFrequency = frequency; } void ThreadEntryPoint() { String^ threadName = Thread::CurrentThread->Name; for (int i = loopStart; i <= loopEnd; ++i) { if (i % dispFrequency == 0) { Console::WriteLine("{0} : i = {1,10}", threadName, i); } } Console::WriteLine("{0} thread terminating", threadName); } }; int main() { ThreadX o1 = gcnew ThreadX(0, 1000000,200000); Thread^ t1 = gcnew Thread(gcnew ThreadStart(o1, &ThreadX::ThreadEntryPoint)); t1->Name = "t1"; ThreadX o2 = gcnew ThreadX(-1000000, 0, 200000); Thread^ t2 = gcnew Thread(gcnew ThreadStart(o2, &ThreadX::ThreadEntryPoint)); t1->Name = "t2"; t1->Start(); t2->Start(); Console::WriteLine("Primary Thread Terminating"); }
그러나이 나에게 같은 오류를 준다 'gcnew' '초기화': 만 관리되는 형식
- 오류 C2440와 객체를 생성하기 위해 사용될 수있다 '의 ThreadX *' '의 ThreadX'없음 생성자에서 변환이 소스 유형, 또는 생성자 오버로드 확인을 할 수없는 것은 모호
- 오류 C3364 : 'System :: Threading :: ThreadStart': 대리자 생성자에 대한 인수가 잘못되었습니다. 대리자 대상은 구성원 함수에 대한 포인터이어야합니다.
와
교체 - 명확하게 복사 및 붙여 넣기 오류! – doctorlove
@doc : C++과 C++/CLI가 섞이는 것을 방지하기 위해 다음 문을 제거하십시오 :'#include namespace std;를 사용합니다 ' –
@ me? 나는 그들을 추가하지 않았다 @ user2572521 - 치명적인 복사와 붙여 넣기와 여분의 물건 만들기 오류 :-) – doctorlove