VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

字幕機發送Declare dll byte問題

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
bryanccy



註冊時間: 2004-06-22
文章: 9


第 1 樓

發表發表於: 星期二 八月 04, 2020 4:34 pm    文章主題: 字幕機發送Declare dll byte問題 引言回覆

請問各位賢拜
下面在C#可正常直行
public static extern int CP5200_Net_SendInstantMessage(byte nCardID, byte byPlaytimes, int x, int y, int cx,int cy,byte byFontSizeColor,int nEffect,byte nSpeed,byte byStayTime, IntPtr pText);
IntPtr iPtr = Marshal.StringToHGlobalAnsi(m_edtText.Text);
ret = CP5200.CP5200_Net_SendInstantMessage(Convert.ToByte(m_nCardID), Convert.ToByte(3), 0, 0,0,0, Convert.ToByte(1Cool, 11, Convert.ToByte(3), Convert.ToByte(3), iPtr);
有參考garfield大大發表的回覆
http://vfp.sunyear.com.tw/viewtopic.php?t=3975&sid=d056ab22f191156f8c7fe70f45eb0c06
寫成下面VFP的程式 可是都不能成功
DECLARE Integer CP5200_Net_SendInstantMessage IN CP5200.dll String @nCardID, String @byPlayTimes,Integer x,Integer y,Integer cx,Integer cy,;
String @byFontSizeColor,Integer nEffect,String @nSpeed,String byStayTime,String @pText
mstr1=CHR(1)
mstr2=CHR(3)
mstr3=CHR(1Cool
pstr=ALLTRIM(this.Parent.text1.value)
nret3=CP5200_Net_SendInstantMessage(@mstr1,@mstr2,0,0,0,0,@mstr3,11,@mstr2,@mstr2,@pstr)
請問要如何寫才能正確傳BYTE值
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 2 樓

發表發表於: 星期二 八月 04, 2020 6:14 pm    文章主題: 引言回覆

代碼:

它的api說明檔裡是這樣寫的
CP5200_Net_SendInstantMessage
int CP5200_Net_SendInstantMessage( byte nCardID, byte byPlayTimes , int x  , int y , int cx , int cy , byte byFontSizeColor , int nEffect , byte nSpeed , byte byStayTime ,const char* pText );
Description   Send instant message
Parameter   nCardID: Controller ID
   byPlayTimes: Play times, from 0 to 255. 0 means continue play until new commands arrive.
   x: Display start point x,the upper left corner of the abscissa.
   y: Display start point y, the upper left corner of the ordinate.
   Cx: Display width. 0 means set to maximum width.
   Cy: Display height. 0 means set to maximum height.
   byFontSizeColor: Font size and color.
Bit0~3: Font size.
Bit4: The weight of the red color
Bit5: The weight of the green color
Bit6: The weight of the blue color
Bit 7: Reserved
   nEffect: Display effect.
   nSpeed: Display speed,0~255.The smaller the faster. Invalid when set to display immediately.
   byStayTime: Stay time. High byte previous(big endian).
   pText: The text data.
Return   1: Success
0: Failure


只有最後一個參數要用到指標, ,const char* pText
你在用vfp時, 其它不需要用到指標的不要加上 @

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
bryanccy



註冊時間: 2004-06-22
文章: 9


第 3 樓

發表發表於: 星期三 八月 05, 2020 8:23 am    文章主題: 引言回覆

謝謝garfield大
有 我有試過這樣 字幕機還是一片空白
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 4 樓

發表發表於: 星期三 八月 05, 2020 5:43 pm    文章主題: 引言回覆

再試看看declare 時就不要用 @ 來試看看,
最後一個參數字用 @ 或不用 @ 來測看看,
另外在字串的最後一個byte加上 chr(0) 來試看看.
設備被測到燒掉了, 不要怪我嘿 XD

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
bryanccy



註冊時間: 2004-06-22
文章: 9


第 5 樓

發表發表於: 星期四 八月 06, 2020 6:46 am    文章主題: 引言回覆

謝謝GARFIELD大的回覆
還是不行
只好做一個C#的DLL 在FOXPRO裡呼叫執行
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作