2013-02-23 67 views
1

如何應對VFP雙指針調用C基於DLL如何應對VFP雙指針調用C基於DLL

我有以下

給出具有雙指針的參數交流語言DLL
int fun_foo(char *str1,char **str2) //str2 has some info. when returns from function 

在FoxPro中我試圖從它的DLL中調用這個函數。我怎麼能打電話給這個;我試圖:

DECLARE INT fun_foo IN sample.dll STRING,STRING @ 

我發現char *可以傳遞字符串參數,但我有困難與雙指針字符串@不工作。 誰能給線索如何傳遞參數在Visual FoxPro在C功能的雙指針PARAM(DLL)

我使用Visual我在這個雙指針的函數得到的數據是對我很重要FoxPro 9.0中SP1和DLL事先

上的Visual C++ 2005

感謝由32位的

回答

0

我不知道,它可以從FoxPro本身來完成,但也許你可以(如果你精通C)在C中創建一箇中間ActiveX對象或類似的東西,它取消引用你的雙指針,然後返回把它交給VFP?

1

簡短的回答:

使用vfp2c32.fll

http://vfpx.codeplex.com/releases/view/71594

從幫助文件:

讀指針 檢索來自指定地址的指針。

龍答:

如果你想只用VFP做到這一點,檢查SYS(2600),BINTOC,CTOBIN和strncpy()函數(即最後一個是在你需要無論如何運行VFP C運行時可執行文件)。

DECLARE INTEGER fun_foo IN sample.dll ; 
STRING str1,; 
INTEGER @pointer 

m.str1 = "sometext" 
m.pointer = 0 

m.result = fun_foo(m.str2, @m.pointer) 

現在這個指針是什麼?你不說。 NUL終止的字符串?使用strncpy。一個INT或一些固定長度的字符串?使用sys(2600)