各位:
你們好,我是第一次在 Labview發言,想不到第一次發言就是要問問題,有點慚愧
最近我要寫一個 dll 給 PDA 使用,前端部份是用 Labview PDA module 開發,
但是在遇到呼叫 DLL 時,遇到一個奇怪的問題
我先將我的 DLL 原始碼 post 於下面:
EXTERNC DLLEXPORT char* MsgBox (void);
.............
.............
.............
char* MsgBox(void)
{
char* temp={0};
char* msg="MSG";
int i=0,sum=0;
sprintf(temp,"WINCE:%s",msg);
return temp;
}
在上述的程式中,我只是單純的把字串重組並送至前端,而在 Labview 的 Call library function node 設定中以
「CString」的方式來接收,Calling convention是指定「C」;
這個奇怪的問題是這樣的
若我將「sprintf........」這一行註解起來(不做動作),然後將「return temp;」改成「return MSG」時,Labview
會成功地接收到 msg 的內容;但是,如果像上述的程式碼那樣執行「sprintf.....」這一行並將最後一行改成「return
temp」時,我的 Labview 就卡在這樣,也沒收到任何的回傳值,更奇怪的是,沒收到任何的「錯誤訊息」
Call library function node 設定畫面:

不知有那位高手可以指點一下,謝謝!