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

[BCB問題]Unresolved externa........UNIT1.OBJ

尚未結案
WHungYun
一般會員


發表:5
回覆:6
積分:2
註冊:2004-04-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-19 14:35:16 IP:163.23.xxx.xxx 未訂閱
大家好有一問題請教    我使用BCB6.0sp4版本,來寫程式控制伺服馬達,廠商有提供一個用BCB4.0寫的範例,連結如下http://home.pchome.com.tw/hot/whungyun/BCB4-DEMO.ZIP 我用BCB6.0執行沒問題。    而我自己建立一個專案,只將"範例"在Form的程式碼複製過來,並有include所需的H檔LIB檔    程式碼如下
 
//---------------------------------------------------------------------------    #include 〈vcl.h〉
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;    #include 
#include 
#include 
#include        long       rc=0L ;
   char       response[64];
   char       szBuffer[128],szBuffer1[128];
   HANDLEDMC  hDmc;
   HWND       hWnd;
   AnsiString data_TD,data_TP;    //---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
    char        ControllerDesc[256];
   AnsiString  ControllerInfo;       rc = DMCGetControllerDesc(1,ControllerDesc,sizeof(ControllerDesc));
   ControllerInfo=ControllerDesc;
   if(rc!=0)
   {
//      Edit1_Controller->Text="NO Controller";
      //Close();
   }
   else
//     Edit1_Controller->Text=ControllerInfo;
      rc=DMCOpen(1,hWnd,&hDmc);
      if (rc!=0)
      {
         ShowMessage("Could not open controller number 1. RC= "   IntToStr((Integer)rc));
         Close();
      }
      else
         rc=DMCCommand(hDmc,"SHX",szBuffer,sizeof(szBuffer));    }
//---------------------------------------------------------------------------
編譯後出現如下訊息 [Linker Error] Unresolved external 'DMCGetControllerDesc' referenced from C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\程式\MOTOR\UNIT1.OBJ [Linker Error] Unresolved external 'DMCOpen' referenced from C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\程式\MOTOR\UNIT1.OBJ [Linker Error] Unresolved external 'DMCCommand' referenced from C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\程式\MOTOR\UNIT1.OBJ 檢查了很多遍,論壇也找過是否有相關的文章,一直沒辦法解決 奇怪的是相同程式碼他的程式可以跑,請問這問題原因有誰知道嗎? 〈〈〈〉〉〉〉 發表人 - WHungYun 於 2004/04/19 19:43:55
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-19 14:55:29 IP:203.73.xxx.xxx 未訂閱
引言: 大家好有一問題請教 我使用BCB6.0sp4版本,來寫程式控制伺服馬達,廠商有提供一個用BCB4.0寫的範例,連結如下http://home.pchome.com.tw/hot/whungyun/BCB4-DEMO.ZIP 我用BCB6.0執行沒問題。 而我自己建立一個專案,只將"範例"在Form的程式碼複製過來,並有include所需的H檔LIB檔 程式碼如下
//---------------------------------------------------------------------------    #include 〈vcl.h〉
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;    #include 
#include 
#include 
#include        long       rc=0L ;
   char       response[64];
   char       szBuffer[128],szBuffer1[128];
   HANDLEDMC  hDmc;
   HWND       hWnd;
   AnsiString data_TD,data_TP;    //---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
    char        ControllerDesc[256];
   AnsiString  ControllerInfo;       rc = DMCGetControllerDesc(1,ControllerDesc,sizeof(ControllerDesc));
   ControllerInfo=ControllerDesc;
   if(rc!=0)
   {
//      Edit1_Controller->Text="NO Controller";
      //Close();
   }
   else
//     Edit1_Controller->Text=ControllerInfo;
      rc=DMCOpen(1,hWnd,&hDmc);
      if (rc!=0)
      {
         ShowMessage("Could not open controller number 1. RC= " + IntToStr((Integer)rc));
         Close();
      }
      else
         rc=DMCCommand(hDmc,"SHX",szBuffer,sizeof(szBuffer));    }
//---------------------------------------------------------------------------    編譯後出現如下訊息
[Linker Error] Unresolved external 'DMCGetControllerDesc' referenced from C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\程式\MOTOR\UNIT1.OBJ
[Linker Error] Unresolved external 'DMCOpen' referenced from C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\程式\MOTOR\UNIT1.OBJ
[Linker Error] Unresolved external 'DMCCommand' referenced from C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\程式\MOTOR\UNIT1.OBJ
檢查了很多遍,論壇也找過是否有相關的文章,一直沒辦法解決 奇怪的是相同程式碼他的程式可以跑,請問這問題原因有誰知道嗎? 〈〈〈〉〉〉〉
WHungYun 你好:
(1)在 BCB 開發環境中按「View/Project Manager」顯示 Project Manager
   Dialog,然後在你的專案名稱上按滑鼠右鍵,選擇「Add」,把 Dmc32b.lib
   這個檔案加入到你的專案裡面,重新編譯之後,應該就可以了<><>
(>    < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --    發表人 - RaynorPao 於 2004/04/19  20:14:51
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
WHungYun
一般會員


發表:5
回覆:6
積分:2
註冊:2004-04-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-19 19:51:05 IP:61.221.xxx.xxx 未訂閱
感謝RaynorPao,我的問題解決了 但請問大家為何lib檔要另外加進來,不是 在Project ->Options ->Directories/Conditionals設定好 會自動連結嗎? 跑去圖書館翻了好幾本書都沒提到這咚咚..... BCB的書大多都教元件的使用...
系統時間:2024-11-23 13:23:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!