#ifndef  _vvCode_h
#define  _vvCode_h#ifdef __cplusplus
extern "C"
{
#endifint vvcode_init(int Width,int Height);
int vvcodefunc(unsigned char *istream,int istream_size,unsigned char *ostream,int * LeaveSize);
int vvcodefunc2(unsigned char *istream,int istream_size,unsigned char *ostream,int * LeaveSize);#ifdef __cplusplus
}
#endif#endif上面是DLL的头文件
我在delphi中用了很多方法,都说内存写入失败!!请高手帮忙

解决方案 »

  1.   

    工程 main.exe 检测到错误类 EAccessViolation , 错误信息: '存取地址 1000A081 违例发生在模块 'vvcode.dll' 中. 写 在地址 00000524里'. 进程中止. 使用单步或运行继续运行.
      

  2.   

    把你的Delphi函数调用声明发出来。
      

  3.   

    int vvcode_init(int Width,int Height); 
    int vvcodefunc(unsigned char *istream,int istream_size,unsigned char *ostream,int * LeaveSize); 
    int vvcodefunc2(unsigned char *istream,int istream_size,unsigned char *ostream,int * LeaveSize); Delphi:
     function vvcode_init(Width,Height:Integer):integer;stdcall;
     function vvcodefunc(istream:PChar;istream_size:Integer;ostream:PChar;var LeaveSize:Integer):integer;stdcall;
     function vvcodefunc2(istream:PChar;istream_size:Integer;ostream:PChar;var LeaveSize:Integer):integer;stdcall;
    你看看这样行不
      

  4.   

    应该是调用约定的问题。把stdcall改成cdecl试试。