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