線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1991
推到 Plurk!
推到 Facebook!

請問我使用別人寫好的dll與lib檔案,但是在組譯時一直出現問題

答題得分者是:salo0610
vk8051
一般會員


發表:22
回覆:33
積分:21
註冊:2007-08-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-07-20 12:51:26 IP:218.160.xxx.xxx 訂閱
請問:
我使用一個8051內建USB埠,然後他們原廠有提供1個DLL檔與LIB,與標頭檔.
然後我是第一次使用別人的程式,所以我是把標頭檔 #include進來, lib檔是在project add進來,然後bcb編輯畫面左邊也都有出現相關的涵式.
問題就出現,我參考原廠給我的資料中,要我去定義一些相關的暫存器就出現組譯的問題,請問我是那邊寫錯嗎?相關函式與資料都在下面的壓縮檔中.
謝謝


[code cpp]
BYTE Buffer[2] = {0xA1,0x02} ;
DWORD dwResult;
DWORD dwByteWritten;
DWORD dwByteRead;
int m_ByteCount = 2;
BYTE * pRxBuf = (BYTE *)malloc(m_ByteCount);

MW_EasyPod NewEasyPod; <-----問題就重這開始以下都組譯不過!!

NewEasyPod.VID = 0x0E6A;
NewEasyPod.PID = 0x0317;


//---------這邊以下是放在我畫面中的按鈕因為我要試連接usb的ic,
dwResult = ConnectPod(&NewEasyPod, 1);

dwResult = ClearPODBuffer(&NewEasyPod);

if (dwResult == ERROR_SUCCESS)
{
NewEasyPod. ReadTimeOut = 500;
NewEasyPod.WriteTimeOut = 500;
WriteData(&NewEasyPod, Buffer, 2, &dwByteWritten);
ReadData(&NewEasyPod, pRxBuf, 2, &dwByteRead);
DisconnectPod(&NewEasyPod);
}
[/code]
------
vincent
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-07-21 08:21:05 IP:220.132.xxx.xxx 未訂閱
 
MW_EasyPod NewEasyPod; --------> MW_EasyPOD NewEasyPod;
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-07-21 08:22:36 IP:220.132.xxx.xxx 未訂閱

[code cpp]

BYTE Buffer[2] = {0xA1,0x02} ;
DWORD dwResult;
DWORD dwByteWritten;
DWORD dwByteRead;
int m_ByteCount = 2;
BYTE * pRxBuf = (BYTE *)malloc(m_ByteCount);

MW_EasyPOD NewEasyPod; //<-----問題就重這開始以下都組譯不過!!
NewEasyPod.VID = 0x0E6A;
NewEasyPod.PID = 0x0317;


//---------這邊以下是放在我畫面中的按鈕因為我要試連接usb的ic,
dwResult = ConnectPOD(&NewEasyPod, 1);
dwResult = ClearPODBuffer(&NewEasyPod);
if (dwResult == ERROR_SUCCESS)
{
NewEasyPod. ReadTimeOut = 500;
NewEasyPod.WriteTimeOut = 500;
WriteData(&NewEasyPod, Buffer, 2, &dwByteWritten);
ReadData(&NewEasyPod, pRxBuf, 2, &dwByteRead);
DisconnectPOD(&NewEasyPod);
}
[/code]
編輯記錄
salo0610 重新編輯於 2008-07-21 08:23:34, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-07-21 10:21:12 IP:118.169.xxx.xxx 訂閱
試試下面的code,測試過可以編譯
#include "Unit1.h"
#include "EasyPODDLL.H"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
BYTE Buffer[2] = {0xA1,0x02} ;
DWORD dwResult;
DWORD dwByteWritten;
DWORD dwByteRead;
int m_ByteCount = 2;
BYTE * pRxBuf = (BYTE *)malloc(m_ByteCount);

MW_EasyPOD NewEasyPod;
NewEasyPod.VID = 0x0E6A;
NewEasyPod.PID = 0x0317;


//---------這邊以下是放在我畫面中的按鈕因為我要試連接usb的ic,
dwResult = ConnectPOD(&NewEasyPod, 1);

dwResult = ClearPODBuffer(&NewEasyPod);
if (dwResult == ERROR_SUCCESS){
NewEasyPod.ReadTimeOut = 500;
NewEasyPod.WriteTimeOut = 500;
WriteData(&NewEasyPod, Buffer, 2, &dwByteWritten);
ReadData(&NewEasyPod, pRxBuf, 2, &dwByteRead);
DisconnectPOD(&NewEasyPod);
}
}
//---------------------------------------------------------------------------

編輯記錄
taishyang 重新編輯於 2008-07-21 10:21:59, 註解 無‧
vk8051
一般會員


發表:22
回覆:33
積分:21
註冊:2007-08-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-07-21 10:24:33 IP:220.130.xxx.xxx 訂閱
感謝,馬上把分數給您,但是還想請教一個問題下面的程式為什麼要擺一起才能組譯過,如果把分隔線的上下都分開就不行!!
因為我想說程式一開就先定義分隔線的上半部,然後我其他的程式要使用時在直接像下半部那樣直接呼叫使用.
不過我一分開就不行組譯,要擺一起才能,請問這又是為什麼!!


BYTE Buffer[2] = {0xA1,0x02} ;
DWORD dwResult;
DWORD dwByteWritten;
DWORD dwByteRead;
int m_ByteCount = 2;
BYTE * pRxBuf = (BYTE *)malloc(m_ByteCount);
MW_EasyPOD NewEasyPod;

NewEasyPod.VID = 0x0E6A;
NewEasyPod.PID = 0x0317;

//-----------------------分隔線-----------------------------------------------------------------------------
dwResult = ConnectPOD(&NewEasyPod, 1);

dwResult = ClearPODBuffer(&NewEasyPod);
if (dwResult == ERROR_SUCCESS){
NewEasyPod.ReadTimeOut = 500;
NewEasyPod.WriteTimeOut = 500;
WriteData(&NewEasyPod, Buffer, 2, &dwByteWritten);
ReadData(&NewEasyPod, pRxBuf, 2, &dwByteRead);
DisconnectPOD(&NewEasyPod);
}
------
vincent
編輯記錄
vk8051 重新編輯於 2008-07-21 10:27:14, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-07-21 10:30:19 IP:118.169.xxx.xxx 訂閱
這是變數的生命週期的問題,你沒辦法讓區域變數做全域變數的事情 ^_^
vk8051
一般會員


發表:22
回覆:33
積分:21
註冊:2007-08-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-07-21 11:30:02 IP:220.130.xxx.xxx 訂閱
謝謝,也很不好意思因為前一位先回答了,所以我就把分數給他,感謝你們2位.

===================引 用 taishyang 文 章===================
這是變數的生命週期的問題,你沒辦法讓區域變數做全域變數的事情 ^_^
------
vincent
系統時間:2024-04-19 14:53:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!