dll 開發例程FmlDevelope.zip 編譯后函數返回的數據不正確 [金字塔]
- 咨詢內容:
編譯環境 winxp + vs2005
金字塔版本:2011(v2.75)編譯了安裝目錄下的例程FmlDevelope,發現接口函數返回的數據是錯誤的,比如"STOCKFUNC@MYMACLOSE"(5)
請問是不是接口的數據結構有變化?而例程沒有更新造成的?或者其他原因?
- 金字塔客服:
等待高手回答
- 用戶回復:
能用C++的在我眼里都是高手~
- 網友回復:
有可能找到問題原因了:一會兒回去試一下
http://www.likai.net.cn/tabid/78/EntryId/23/KA1001-DLL-VS2010.aspx
這里是引用李凱學堂發的帖子:
下面我就詳細列出整個過程:
1、金字塔的安裝目錄有一個 FmlDevelope.zip 壓縮文件,其中包含了完整DLL擴展接口的接口示例,以及在.H頭文件里的接口使用信息描述。注意壓縮包內的這個接口工程文件是VC++6.0的格式的。
2、解壓縮了FmlDevelope.zip以后,在VS2010中打開StockFunc.dsw工程文件,VS2010會提示你需要轉換,你選擇確認轉換,轉換完成后的工程文件,如果立即編譯的話也可以通過的,不會報錯,但是到金字塔下面調用的時候,會出錯。原因是接口文件中的類型time_t在金字塔里面是解釋成32位的,但是在VS2010里面缺省的是編譯成64位的,所以當DLL解釋金字塔傳遞過來的時間時就出現了問題。
3、為了讓VS2010把接口中的time_t編譯成32位,我們需要在頭文件中增加一個預定義宏
#define _USE_32BIT_TIME_T //使用32位的時間格式
然后再編譯就可以和金字塔正常通信了。 - 網友回復: 樓主,按4樓的方法你試過能解決問題嗎?如果能的話我也下個VS2010去。
相關文章
-
沒有相關內容