我在主程序中静态引用了一个DLL,并未调用其中的函数。
退出程序的时候,总是出错:Invalid pointer operation.
不知道各位有没有碰到相同的问题。

解决方案 »

  1.   

    function MessageBox(HWnd: Integer; Text, Caption: PChar; Flags: Integer): Integer; 
      stdcall; external 'user32.dll' name 'MessageBoxA';试着加上 stdcall; 限定符
      

  2.   

    to  artman() :还是出错。
    我是这样声明的:
    function Customer_DM:TCustomer_DMClass;stdcall;external 'Customer.dll';
    事实上,我仅仅是声明而已,根本就没调用。
      

  3.   

    你的DLL中的汉书中一定有String类型的变量或返回值,改成ShortString或PChar就可以了!!!
      

  4.   

    这个dll中包含类,这个函数
    function Customer_DM:TCustomer_DMClass;stdcall;external 'Customer.dll';
    也只是返回类。
    而且我已经引用了ShareMem,问题不是字符串。
    我想可能是系统在卸载Dll时出的错,但不知道具体出在哪里。
      

  5.   

    记着,DLL中相应的函数也要声明成Stdcall型的。
      

  6.   

    commit(滩涂鱼) :我在DLL中的函数加上了stdcall,
    还是要出错。
      

  7.   

    我似乎找到问题了,不是调用dll的问题。
    此贴到此为止,请大家不要浪费时间了。为表示感谢,我还是给各位表示一下。注意接分!
      

  8.   

    实际上还是ShareMem的问题,记得一定要把SharMem加在Project中的第一个。
    菜单:Project\View Source之所以出现这个错误,是我把ShareMem放错位置了。