Re: [問題] 一般指標轉函數指標
: → holymars:那就強制轉型就好了.. 12/30 13:12
: → holymars:Thread( (void(*)())OB.funptr ); 12/30 13:14
貼一下部份的程式碼,再簡化一下..
class ActTB{
public:
int ActID;
int ProcedureID;
void* ProcedureAdr;
};
array<Thread^>^ ThreadMove=gcnew array<Thread^>(10);
ActTB ActTable;
ActTable.ActID=1;
ActTable.ProcedureAdr=&fun1;
void(*a)()=((void(*)())ActTable.ProcedureAdr);
ThreadMove[0]=gcnew Thread(gcnew ThreadStart(ActTable.ProcedureAdr) );
ThreadMove[0]=gcnew Thread(gcnew ThreadStart(
( (void(*)() )ActTable.ProcedureAdr) ) );
ThreadMove[0]=gcnew Thread(gcnew ThreadStart( a ));
第一個,沒轉型前,有錯,錯誤訊息如下
error C3364: 'System::Threading::ThreadStart' :
對委派建構函式無效的引數,委派目標必須是指向成員函式的指標
第二個,轉型後,結果是同樣的錯誤訊息
第三個,有錯,但錯誤訊息不太一樣,如下
error C3352: 'void (__cdecl *__cdecl a)(void)' :
指定的函式不符合委派型別 'void (void)'
感覺第二三個應該可以才對,也不知道為什麼錯@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.18.48.28
※ 編輯: tyc5116 來自: 163.18.48.28 (12/30 13:29)
推
12/30 13:57, , 1F
12/30 13:57, 1F
→
12/30 13:59, , 2F
12/30 13:59, 2F
推
12/30 14:01, , 3F
12/30 14:01, 3F
→
12/30 14:02, , 4F
12/30 14:02, 4F
推
12/30 14:15, , 5F
12/30 14:15, 5F
→
12/30 14:15, , 6F
12/30 14:15, 6F
推
12/30 16:00, , 7F
12/30 16:00, 7F
→
12/30 17:03, , 8F
12/30 17:03, 8F
推
12/30 17:12, , 9F
12/30 17:12, 9F
→
12/30 17:16, , 10F
12/30 17:16, 10F
→
12/30 17:17, , 11F
12/30 17:17, 11F
→
12/30 18:29, , 12F
12/30 18:29, 12F
推
12/30 22:21, , 13F
12/30 22:21, 13F
→
12/30 22:21, , 14F
12/30 22:21, 14F
→
12/30 22:21, , 15F
12/30 22:21, 15F
→
12/30 22:21, , 16F
12/30 22:21, 16F
推
12/30 22:24, , 17F
12/30 22:24, 17F
討論串 (同標題文章)