全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1519
推到 Plurk!
推到 Facebook!

CodeGuard警告:Resource from different RTL in process

缺席
swszg
一般會員


發表:11
回覆:10
積分:9
註冊:2007-01-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-16 13:47:23 IP:140.130.xxx.xxx 訂閱
我的想法是利用一個exe內的一個執行緒
當作主執行緒 來管理其他dll裡的資源
開啟CodeGuard
發現CodeGuard給我這樣的警告:Resource from different RTL in process
我試過dll共用記憶體 不過好像也不是這樣的問題
還是我弄錯方式...
也看過網路上幾篇文章
不過好像沒辦法很懂
http://delphi.newswhat.com/geoxml/forumhistorythread?groupname=delphi-gems.support.virtualtreeview.vcl&messageid=eerphm$9lg$1@news.soft-gems.net
https://ww6.borland.com/message.jspa?messageID=27423
在網路上 關於這問題好像不是很多
不知道各位前輩們 是否給我點意見
In Project1.dll
把指標指向共用的記憶體
[code cpp]
void DLL_EXPORT Initial(TThreadList *ScheduledTask)
{
ThreadList_SystemScheduledTask = ScheduledTask;
}
[/code]

new 一個char* 給ThreadList
[code cpp]
void DLL_EXPORT newResource(void)
{

//宣告所使用的記憶體
char *TempBuff_COMM; //排程任務暫存器
TempBuff_COMM = new(char[6]); //排程任務暫存器 <--在這裡new的
TempBuff_COMM[5] = 0x00;
TempBuff_COMM[0] = 0x01;
TempBuff_COMM[4] = 0xFF;
TempBuff_COMM[3] = 0x01;
TempBuff_COMM[2] = 0x01;
TempBuff_COMM[1] = 0x01;

ThreadList_SystemScheduledTask->Add(TempBuff_COMM); //<-這裡add 給ThreadList
}
[/code]

In Project2.exe
刪除 ThreadList任務
[code cpp]
pTempBuff_CommandList
= ThreadList_SystemScheduledTask->LockList();
try
{
strcpy
(
TempBuff_CurrentCommand,
(char *)pTempBuff_CommandList->Items[0]
);
//02.02. 判斷是否為自己的程序 - true:清除此項命令
//if( TempBuff_CurrentCommand[0] == 0x01)
//{
char *toDelete
= (char *)pTempBuff_CommandList->Items[0];
pTempBuff_CommandList->Remove
(pTempBuff_CommandList->Items[0]);
delete[] toDelete; //<- 在這裡會出現Resource from different RTL in process 的警告

TempBuff_CommandCode
= *((unsigned int*)(TempBuff_CurrentCommand 1));
}
__finally
{
//03. 任務排程列表 - 解鎖
ThreadList_SystemScheduledTask->UnlockList();
}
[/code]
專案
------
ΞΛΤ造福全人類ΠΔζ
編輯記錄
swszg 重新編輯於 2008-12-16 13:53:26, 註解 無‧
swszg 重新編輯於 2008-12-17 18:08:29, 註解 標示發生錯誤點‧
swszg
一般會員


發表:11
回覆:10
積分:9
註冊:2007-01-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-23 16:55:30 IP:140.130.xxx.xxx 訂閱
把exe與dll的dynamic RTL勾選起來
Resource from different RTL in process 就不會警告了
說真的 還真的不知道為什麼
這是在爬文章的時候看到dynamic RTL的問題
看看子己的專案 才發現自己的也沒勾選
等我找到為什麼會導致這樣 再把原因補上
問題解決了 先結案....
如果各位前輩有其他想法 也歡迎批評指教
謝謝唷....
------
ΞΛΤ造福全人類ΠΔζ
系統時間:2017-10-17 21:14:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!