DELPHI單元中的定義:
unit OleComCall;
implementation
function GridOut(datFile:string; grdFile:string; bmpFile:string):integer;
C++BUILDER中的宣告:
int _pascal GridOut(String datFile, String grdFile, String bmpFile);
編譯通過,但是連接通不過,顯示 unreoleved fuction....
不知道是宣告不對還是其它的問題,請高手指點一下如何才能實作二者代碼共享?
uj5u.com熱心網友回復:
應該是:
extern "C" int __fastcall GridOut(String* datFile, String* grdFile, String* bmpFile);
uj5u.com熱心網友回復:
BTW:
c++ builder 可以使用pas單元,只需把要用到的 pas 單元檔案加入工程就可以了。但是有一個問題,c++ builder并不會馬上生成 c++ 所需要的 HPP頭檔案,這時參考PAS單元中的代碼就沒有自動完成功能了,單獨編譯還會報錯,說是“某某沒有定義”。有一個小技巧,PAS單位檔案加入工程后,先BUILD一次,將這個工程重新 build 一次,不是make,不要管能否通過,這時IDE就會呼叫相關程式把pas單元編譯一次,生成hpp頭檔案,接下來就可以正常參考pas單元中的內容了。注意生成的HPP檔案不要人工改動,讓c++ builder維護就可以了,如果修改了PAS單元中的定義,重新build一次,HPP檔案就更新好了。
眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......
值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......