PDA

View Full Version : سوال: link 32 errore in TThread using at Console Application



brotherjalal
یک شنبه 15 آبان 1390, 11:50 صبح
با سلام و احترام

من یک کنسول دارم که نیاز دارم برای ایجاد سرعت بیشتر آن را به صورت چند پروسسوری حل کنم بنا بر این رفته ام به سمت استفاده از TThread. اما متاسفانه نمی دانم چرا با وجود اینکه فایل های هدر را در هم در کلاس مربوط به TThread و هم در بخش اصلی کنسول قرار داده ام، یک ایراد اساسی بدون ارجاع به موقعیتی خاص از کد من به نام link 32 Error: Unresolved external '__tpdsc__ Classes::TThread' از من می گیرد.
جالب این است که وقتی یک فرم درست می کنم و دقیقاً همین کار ها را در یک فرم می کنم، اصلاً ایرادی نمی گیرد و برنامه اجرا می شود.
در ادامه برنامه ی بسیار ساده را نوشته ام. بسیار به من لطف خواهید نمود اگر چیزی به ذهنتان می رسد. پیشاپیش از شما کمال تشکر را دارم.

با سپاس و عرض ادب
جلالوند

بخش اصلی کنسول:

//---------------------------------------------------------------------------
#pragma hdrstop
#include "File2.h";
#include "Unit1.h"
#include <tchar.h>
//---------------------------------------------------------------------------
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
TMyThread* nt=new TMyThread(false);
return 0;
}
//---------------------------------------------------------------------------

بخش هدر کلاس چند نخی:
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
//---------------------------------------------------------------------------
class TMyThread : public TThread
{
private:
protected:
void __fastcall Execute();
public:
__fastcall TMyThread(bool CreateSuspended);
};
//---------------------------------------------------------------------------
#endif

تعریف کلاس مربوط به چند نخی:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "File2.h";
#include "Unit1.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__fastcall TMyThread::TMyThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
}
//---------------------------------------------------------------------------
void __fastcall TMyThread::Execute()
{
//---- Place thread code here ----
}
//---------------------------------------------------------------------------

BORHAN TEC
دوشنبه 16 آبان 1390, 18:27 عصر
از کد زیر استفاده کنید:
// ---------------------------------------------------------------------------

#include <vcl.h>
#include <Classes.hpp>
#pragma hdrstop

#include <tchar.h>
// ---------------------------------------------------------------------------

#pragma argsused

class TMyThread : public TThread {
private:
protected:
void __fastcall Execute();

public:
__fastcall TMyThread(bool CreateSuspended);
};

// ---------------------------------------------------------------------------
int _tmain(int argc, _TCHAR* argv[]) {
TMyThread* nt = new TMyThread(false);
return 0;
return 0;
}

// ---------------------------------------------------------------------------
__fastcall TMyThread::TMyThread(bool CreateSuspended) : TThread
(CreateSuspended) {
}

// ---------------------------------------------------------------------------
void __fastcall TMyThread::Execute() {
// ---- Place thread code here ----
}
در ضمن موقعی که پروژه ای را می خواهید از نوع Console ایجاد کنید در پنجره ای که ظاهر می شود تنظیماتی شبیه به شکل زیر را اعمال کنید: