当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 我一点头绪都没有,还请高手指点!拜托 ......
    摘要: 1、 我想把jf表中(在一定条件下的)的j_gz字段的值相加, 把结果赋给st表中的s_zj字段。 sql语句该怎么写? ———————————————————————————— 2、 在delphi6.0中,server端的接口过程函数应该怎么做, 有哪些要点和要注意的方面? ———————————————————————————— 3、 怎么根据日期中的天和月为条件,进行循环? tha......


一个自己做DLL的问题触发异常啊,大家来帮忙,看看啦

有一个汉字转拼音的函数,在正常的文件中调用,没有问题,可是我把他封装在DLL里,就出现问题,  
   
  Function   hz2py(hzstr:   string):string;   external   hz2py.dll;  
   
   
  procedure   TForm1.Button4Click(Sender:   TObject);  
  begin  
      edit2.Text   :=   hz2py(edit1.Text);  
  end;  
   
  错误:  
   
  Project   Project1.exe   raised   exception   class   EInvalidPointer   with   message   "Invalid   pointer   operation   "  
   
  这是怎么回事啊?!解决问题,一定给分!

NO.1   作者: Linux2001

什么函数编译不过去了,你给的第一个函数  
  Function   padl   (Int:   Integer)   :   pchar;  
  Var  
      ss   :   pchar;  
  Begin  
      ss   :=   Inttostr   (Int);  
      While   LENGTH   (ss)   <   3   Do   ss   :=   0   +   ss;  
      result   :=   ss  
  End;  
  改成这样  
  function   padl(int   :integer):PChar;  
  var  
      ss   :PChar;  
  begin  
      ss   :=PChar(IntToStr(int));  
      while   Length(ss)   <   3   do  
          ss   :=0   +   ss;  
      result   :=ss;  
  end;  
 

NO.2   作者: runranrun

最好这样封装你的函数:Function   hz2py(pHzstr,pPystr:   pchar):integer;  
  这样简单而且比较安全.(如果学过C++或者熟悉指针操作,你就会明白其中的道理),然后你的函数实现改成:  
  Function   hz2py(pHzstr,pPystr:   pchar):integer;  
  Var  
      hzstr,pystr:   string  
      PYSTR,S,S1,PYSTR1:   string;  
      n,j,i,STRLEN   :   integer;  
  Begin  
      hzstr   :=   string(pHzstr);  
      //下面的部分,把result用pPystr替代,注意把string转成PChar  
      S   :=   DupeString   (   ,   1000);  
      S1   :=   DupeString   (   ,   809);  
  .......................  
   
  其他不在DLL输出的函数完全不必作任何修改.


 ·谁能回答这个问题    »显示摘要«
    摘要: 在oracle里插入数据时,date形的格式必须为:dd-mm月 yy,插入成功。改为yyyy-mm-dd失败。如何解决? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE