C_Sharp 板


LINE

我目前開發的程式語言是C#,最近拿到一個API的文件,需引用HsFutuSDK.dll裡的 function 已我所知的,我目前只能使用DllImport三個function 1. IFuMessage* HSAPI NewFuMessage(int iMsgType = MSG_TYPE_UNKNOWN,int iMsgMode = MSG_MODE_UNKNOWN); 2. IHsFutuComm* HSAPI NewFuCommObj(void* lpReserved = NULL); 3. int HSAPI GetSDKVersion();(已能呼叫成功) 我的問題,大概都在於如何改成讓C#可使用他struct裡的功能,如: 1. 是要如何去引用在 IHsFutuComm 裡的function 如 SetConfig、Start等。 2. 像virtual unsigned long HSAPI QueryInterface( const char * iid, IHSKnown **ppv ) = 0; 這種的重新宣告成C# 要如何改 是否有人能解我疑惑?感激!!!! C++使用的範例內容的程式標頭檔,例了一些,如下: #ifndef _FUTU_MESSAGE_INTERFACE_H_ #define _FUTU_MESSAGE_INTERFACE_H_ #include "futu_data_types.h" #ifdef _WIN32 # ifdef HSAPI # undef HSAPI # endif # define HSAPI __stdcall #else # define HSAPI #endif struct IHSKnown { virtual unsigned long HSAPI QueryInterface( const char * iid, IHSKnown **ppv ) = 0; virtual unsigned long HSAPI AddRef() = 0; virtual unsigned long HSAPI Release() = 0; }; struct IFuMessage:public IHSKnown { virtual int HSAPI SetMsgType(int iType,int iMode) = 0; virtual int HSAPI GetMsgType(int* lpMsgMode = NULL) = 0; virtual int HSAPI GetCount() = 0; virtual IFuRecord* HSAPI AddRecord() = 0; virtual IFuRecord* HSAPI GetRecord(int iIndex = 0) = 0; virtual int HSAPI DelRecord(int iIndex = 0) = 0; virtual int HSAPI Clear() = 0; }; struct IFuRecord:public IHSKnown { virtual int HSAPI SetChar(const char* sField,char cValue) = 0; virtual int HSAPI SetInt(const char* sField,int iValue) = 0; virtual int HSAPI SetDouble(const char* sField,double dValue) = 0; virtual int HSAPI SetString(const char* sField,const char* strValue) = 0; virtual char HSAPI GetChar(const char* sField) = 0; virtual int HSAPI GetInt(const char* sField) = 0; virtual double HSAPI GetDouble(const char* sField) = 0; virtual const char* HSAPI GetString(const char* sField) = 0; virtual int HSAPI MoveFirst() = 0; virtual int HSAPI MoveNext() = 0; virtual int HSAPI IsEOF() = 0; virtual const char* HSAPI GetFieldName() = 0; virtual int HSAPI RemoveField(const char* sField) = 0; virtual int HSAPI IsExist(const char* sField) = 0; virtual int HSAPI Clear() = 0; virtual int HSAPI GetCount() = 0; }; struct IHsFutuComm:public IHSKnown { virtual int HSAPI SetConfig(const char* szSection,const char* szName,const char* szVal) = 0; virtual int HSAPI Init(IFuCallBack* lpCallback = NULL,int iTimeOut = 5000) = 0; virtual int HSAPI Start(int iType,int iTimeOut = 5000) = 0; virtual int HSAPI DoLogin(const char *szUserID,const char* szUserPass,const void* lpReserved = NULL) = 0; virtual int HSAPI AsyncSend(const IFuMessage* lpReqMsg,int iKeyID = -1) = 0; virtual int HSAPI SyncSendRecv(const IFuMessage* lpReqMsg,IFuMessage* lpAnsMsg,int iTimeout = 3000) = 0; virtual int HSAPI SubscribeRequest(REGType rType,REGAction rAction,const char* szParam) = 0; virtual int HSAPI DoLogout(const char* szUserID,const void* lpReserved = NULL) = 0; virtual int HSAPI Stop() = 0; virtual int HSAPI GetStatus(int iIndex) = 0; virtual const char* HSAPI GetErrorMsg(int iErrNo) = 0; virtual int HSAPI SetKeyData(const void* lpKeyData,int iLen) = 0; virtual const void* HSAPI GetKeyData(int* iLen) = 0; }; struct IFuCallBack:public IHSKnown { virtual void HSAPI OnNotifyConnState(IHsFutuComm* lpComm,int iType,int iStatus,const char* szNotifyTime,const char* szMessage) = 0; virtual void HSAPI OnRspLogin(IHsFutuComm* lpComm,IFuMessage* lpMsg) = 0; virtual void HSAPI OnRspLogout(IHsFutuComm* lpComm,IFuMessage* lpMsg) = 0; virtual void HSAPI OnRspSubResult(IHsFutuComm* lpComm,REGType sType,REGAction aAction,int iResult,const char* lpParam,const char* szMessage) = 0; virtual void HSAPI OnReceivedBiz(IHsFutuComm* lpComm,IFuMessage* lpAnsData,int iRet,int iKeyID) = 0; virtual void HSAPI OnRecvMarketData(IHsFutuComm* lpComm,CMarketInfo* lpInfo,REGAction rAction) = 0; virtual void HSAPI OnRecvArgMarketData(IHsFutuComm* lpComm,CArgMarketInfo* lpInfo,REGAction rAction) = 0; virtual void HSAPI OnRecvOrderInfo(IHsFutuComm* lpComm,const COrderRspInfo* lpInfo) = 0; virtual void HSAPI OnRecvOrderRealInfo(IHsFutuComm* lpComm,const CRealRspInfo* lpInfo) = 0; virtual void HSAPI OnRspOnlineMsg(IHsFutuComm* lpComm,const char* szUsrID,const char* szMessage) = 0; }; #ifdef __cplusplus extern "C" { #endif IFuMessage* HSAPI NewFuMessage(int iMsgType = MSG_TYPE_UNKNOWN,int iMsgMode = MSG_MODE_UNKNOWN); IHsFutuComm* HSAPI NewFuCommObj(void* lpReserved = NULL); int HSAPI GetSDKVersion(); #ifdef __cplusplus } #endif --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.38.240.23
1F:推 TeemingVoid:請參考 http://ppt.cc/-Ao5 網頁最下方的對照表 05/22 01:38
2F:→ proach:我幹過蠢事,自己寫個DLL去控制 C++ DLL。界面重包一下... 05/22 13:55
3F:→ gavinro:不好意思,請問有相關範例可參考嗎!? 05/23 08:36







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP