我现在在vc++下写了一个win32 dll(not using mfc)
我通过def文件导出函数,为了界面操作方便,前台我使用了delphi
我在使用导出函数时,发现如果需要参数传入的导出函数,会在程序结束时出现错误
具体(access vialation at xXXXXXXXXX)每次地址不同,但如果不带参数直接
调用,没有错误,谁能帮我一下!!!
可提高分数

解决方案 »

  1.   

    1.凡是有access vialation 字样都是因为异模块释放内存引起的。
    例如在DLL里new的实例,在exe里delete,就会access vialation 。2.VC默认压栈是cell,delphi就该是stdcall吧。试试为你的VC导出函数加个__stdcall前缀。
      

  2.   

    万分感谢!
    看来我的重新读一遍c++primer,很多细节没读懂啊!
    谢谢
      

  3.   

    凡是C++书籍都不会提及这种技术细节的。上面所提到的技术细节都是微软专用的。
    (我无法想象UNIX下能用C++写的DLL)
      

  4.   

    我一直都是这样做的,好像从来没有出现过楼主所说的问题,注意如果vc中函数的生命为cdecl的话,delphi中的生命必须为
    procedure(function) xxxfunc(...);external;cdecl;否则,vc中的生命必须为WINAPI型