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

DLL與傳遞/回傳物件問題?

尚未結案
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-21 12:12:20 IP:219.80.xxx.xxx 未訂閱
我在DLL裡提供了一個function,負責接收物件和處裡物件,之後再把它傳遞出去. 其code如下:
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
  return 1;
}    class testO {
public:
    int a;
    double b;
};    void __declspec(dllexport) __stdcall test(testO *a1)
{
 int aa;
 double bb;
 aa=a1->a*10;
 bb=a1->b 10;
 return (a1);
}
主程式部份如下: UserDefin.h
void __declspec(dllexport) __stdcall test(testO *a1);
Unit1.cpp
#include "UserDefine.h"
class Ca {
public:
    int a;
    double b;
};    void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Ca *ca=new Ca;
  ca->a=5;
  ca->b=10;
  test(ca);
  //...如何確認回傳它有改變數值?如何接收物件?
}
目前我不知道該如何傳遞物件及回傳物件,不曉得能不能指導一下此程式該如何改?感激不盡.
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-23 22:22:37 IP:219.80.xxx.xxx 未訂閱
我在DLL的部份改成如下: Unit1.cpp:
#include "File1.h"
void __declspec(dllexport) __stdcall test(testO *a1)
{
 a1->a *= 10;
 a1->b  = 10;
}
File1.h:
class __declspec(dllexport) testO
   {
        public:
           int a;
           double b;
   };
Build之後,我把.lib和.dll和File1.h複製到我client的project裡面 ==================================================================== Client端部份改成如下: Unit1.cpp
#include "UserDefine.h"
#include "File1.h"
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  testO *ca;
  ca->a=5;
  ca->b=10;
  test(ca);
  ShowMessage(ca->a); //秀出運算後的新值
  ShowMessage(ca->b); //秀出運算後的新值
}
UserDefine.h
void __declspec(dllexport) __stdcall test(testO *a1);
===================================================================== 但Compile出現: [C Error] UserDefine.h(1): E2147 'testO' cannot start a parameter declaration [C Error] Unit1.cpp(28): E2034 Cannot convert 'testO *' to 'int *' [C Error] Unit1.cpp(28): E2342 Type mismatch in parameter 'a1' (wanted 'int *', got 'testO *') 請問這些錯誤該怎麼更正? 謝謝.
系統時間:2024-06-29 4:18:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!