现在需要用delphi做界面。
而我的实现是用的C++,但不知道这样该如何结合呢?
比如我在界面上做一些操作但它用的是object pascal的语言,用dll?
谁能给我举个简单的例子行吗?当然谁能给出更详细的参考资料就更好。
希望大家帮忙。

解决方案 »

  1.   

    核心算法用c++写成com组件,或者dll,然后delphi调用
      

  2.   

    转贴: 调用DLL有两种方法,一种是在应用程序装载时调用,另一种是在应用程序运行时调用。
    首先介绍装载时DLL的调用:  (1)装载时调用DLL  在调用DLL的Pas文件中,对DLL函数进行外部声明,
    声明应位于Implementation的Uses语句后,形式如下:  Implementation  Uses Dialogs;  Function Name(argment):Boolean;far;External 'CallName';    其中External关键字后面的引号内的字串是DLL的文件名。
    声明以后即可在Pas文件任何地方引用DLL函数。  装载时调用DLL的优点是速度较快,程序间也可共享代码。  (2)运行时调用DLL  DLL的另一种调用方法是在运行时调用。
    要调用到Windows的API函数:LoadLibrary,GetProcAddress等。
    主要用于调用DELPHI和其它语言,特别是C++编译的DLL。  假定你的DLL包括一个函数:  Function MyFunc(aparam:word):string;export;  首先在程序Type类型声明处加入一句:  Type
        TMyfunc = function(aparam:word):string;  此句的作用如同C++中声明的函数指针。  然后定义如下变量∶  Var
         aptr:TFarproc;
         lhnd:THandle;
         s:string;  其中Aptr,lhnd两变量声明必须有,s是DLL函数返回值,视情况而定。  在调用DLL处加入如下语句进行DLL装载:
      lhnd:=Loadlibrary('路径:DLL文件名');{如lhnd:=Loadlibrary('c:\aa\bb.dll');
      aptr:=GetprocAddress(lhnd,'Myfunc');  下面可直接调用DLL了:
      s:=TMyfunc(bptr)(60);{根据函数填相应的变量参数}  调用完以后,用FreeLibrary释放DLL占用的内存:
      FreeLibrary(lhnd);
      

  3.   

    不知道如何在DELPHI中操作C++中类成员函数或共享类对象.
    不知道上面几位老大有没有把C++做成DLL和用DELPHI来调用的例子或类似资料呢?
    因为我对DELPHI不太熟而C++熟点,所以具体的实现想用C++但又喜欢DELPHI而不喜欢VC所以想用DELPHI来做界面.毕竟一个应用程序不提供GUI似乎不太友好.
    先谢谢theone_jxm() ,研究一下先.
      

  4.   

    一楼的说的对,核心的用C++写成DLL,然后使用DELPHI调用~!
      

  5.   

    用C++做成dll.然后用Delphi调用。
    我说一下我的看法:我觉得你这样做不好,
    直接用C++写个界面就完了。不用这样个"取长补短".
      

  6.   

    一般情况下确实没这个必要,要么全部用OBJECT PASCAL,要么全部用C++,
    如果是玩玩,做做技术实验,倒可以,如果真正在项目中这样做,是自讨苦吃,
    没有多大意思。
      

  7.   

    以前有个人问 “用delphi做GUI,java写代码”哈哈,跟你这个差不多那么,请用C++BUILDER吧,哈哈
      

  8.   

    楼主,你不用BCB真是天大的错误!
    天啦,为什么会有为问这种问题呀
    BCB:用C/C++语言的DELPHI
    DELPHI:用Object Pascal语言的BCB
      

  9.   

    楼主,你不用BCB真是天大的错误!
      

  10.   

    to: lili1(离奇)
    直接用C++写个界面就完了。不用这样个"取长补短".
    //用C++如何写界面?搞个图形库?我觉得有专门的控件做起来更方便.
    //如果用图形库的话也不是一天两天能搞好的事.因为界面只是一个操作用户接口.
    //我重要的还是要在乎实现的.
     
    to: nyf1220(我是党员) 
    以前有个人问 “用delphi做GUI,java写代码”哈哈,跟你这个差不多
    那么,请用C++BUILDER吧,哈哈
    //不太清楚DELPHI和BCB(最新用的是X吧?)有什么不同?好像X不是用的VCL吧?
    //感觉BCB并没有DELPHI那么RAD(高效吧?)DELPHI好像也比较简单(当然是指在普通应用上如做个界面哪)不知道BCB如何.我试试BCB看看如何.
      

  11.   

    底层涉及到大量api调用的部分用c++来写成dll或者com。然后主体部分用delphi调用dll。不过这样的运行效率肯定不高,两种语言的数据类型又不完全一致,不到万不得已别这样
      

  12.   

    有何非要用C++实现,而delphi实现不了
    我想楼主可能C++比较熟悉,但用c++实现界面又太繁
      

  13.   

    to:zjqyb(风清扬*任它溺水三千,我只取一瓢饮*) 的确如你所说,我对C++熟一点而对DELPHI不太熟而BCB更是没有摸过。
    不过对DELPHI还是比对BCB熟一点。
    C++做界面很麻烦。你说用VCL搞一搞多方便是吧。正好手头有本delphi6开发人员指南所以想用delphi.
    感觉bcb效率不怎么高。那个代码提示好慢的说.现在要做一个东西,用C++实现但界面得用BCB或delphi做。时间不多只有半年。我现在一点bcb都不会用不知道怎么办。。
      

  14.   

    你有C++的功底,熟悉object pascal的语法应该比较快,它的好多实现融合了C++的思想
    学一学应该没有坏处
      

  15.   

    看你的需求!做成dll的好处是以后其他程序也可以调用,不一定非得你得那个程序来调用!