請問我使用別人寫好的dll與lib檔案,但是在組譯時一直出現問題 |
答題得分者是:salo0610
|
vk8051
一般會員 發表:22 回覆:33 積分:21 註冊:2007-08-10 發送簡訊給我 |
請問:
我使用一個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 發送簡訊給我 |
|
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
[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 發送簡訊給我 |
試試下面的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 發送簡訊給我 |
感謝,馬上把分數給您,但是還想請教一個問題下面的程式為什麼要擺一起才能組譯過,如果把分隔線的上下都分開就不行!!
因為我想說程式一開就先定義分隔線的上半部,然後我其他的程式要使用時在直接像下半部那樣直接呼叫使用. 不過我一分開就不行組譯,要擺一起才能,請問這又是為什麼!! 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 發送簡訊給我 |
|
vk8051
一般會員 發表:22 回覆:33 積分:21 註冊:2007-08-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |