我目前正在與FANUC 31i B型控制器進行通信。我的目標是能夠上傳零件程序,確認沒有數據丟失,並在需要時刪除程序。C#:將指針傳遞給字符串以保存返回的值
FANUC有一個FOCAS庫,其中有用於C#的有用函數。下面是我遇到麻煩的DllImport。
/* read selected file name */
[DllImport("FWLIB64.dll", EntryPoint="cnc_pdf_rdmain")]
public static extern short cnc_pdf_rdmain(ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a);
根據自己的技術團隊,我需要一個指針傳遞給一個字符串來保存存儲在一個對象返回值。該字符串是剛剛上傳到系統的零件程序的文件路徑。這對我來說很重要,因爲它可以讓我選擇上傳的程序作爲主程序。
這是我用我的主要代碼是什麼:
Object mg1 = new object();
rslt = Focas64.cnc_pdf_rdmain(this.i31Handle,);
if (rslt != 0)
{
StopActivity(true);
return;
}
我不是太熟悉C#或編碼爲此事。所以請爲我貶低它。謝謝!
爲什麼C++代碼,當您使用C#?他們是不同的語言。 –
FOCAS庫最初是爲C++設計的。我認爲這在這種情況下是相關的。我現在將其刪除 –
C或C++頭文件中'cnc_pdf_rdmain'函數的確切簽名是什麼? – cynic