在VB中调用是好的。在VB中的函数说明是
Post_ext(Byval title as String, Byval url as String, response as String);
DLL要向response中写字符串,response长度要足够长。在VC中用动态连接方式调用。typedef (*MYPROC)(LPCSTR, LPCSTR, LPSTR);
char *buffer;void foo()
{
MYPROC proc;
// LoadLibrary, GetProcAddress
buffer = calloc(4096000);
proc("title", "http://123/abc.jsp", buffer);
}
为什么proc("title", "http://123/abc.jsp", buffer); 这一句会抛出异常访问异常。怎们解决啊??
Post_ext(Byval title as String, Byval url as String, response as String);
DLL要向response中写字符串,response长度要足够长。在VC中用动态连接方式调用。typedef (*MYPROC)(LPCSTR, LPCSTR, LPSTR);
char *buffer;void foo()
{
MYPROC proc;
// LoadLibrary, GetProcAddress
buffer = calloc(4096000);
proc("title", "http://123/abc.jsp", buffer);
}
为什么proc("title", "http://123/abc.jsp", buffer); 这一句会抛出异常访问异常。怎们解决啊??
解决方案 »
- 向一个窗口 SendMessage 其子窗口可会自动向下处理
- cfont类中的creatfont方法问题
- 如何知道当前的焦点是在哪个控件上面?
- 急急急!!在线等!各位朋友,帮帮忙,实在是难找!!!
- 不知道各位高手有没有留意过一个非常有意思的windows窗口现象!
- 程序员》杂志第8期,“永不停息的程序”介绍的书《Programming Server-side Applications for Windows2000》,哪里能买到?
- move()怎么用啊
- 一个家伙问我要8000元的问题!
- VC6.0还实用吗?
- 如何在程序中判断一个user是不是win2000的administrators组的?
- 郁闷,散分~~~
- 打印问题
搂主的习惯可不是很好,申请内存一定要检查是否成功。
一次申请近4M内存很有问题,而且http://123/abc.jsp这个页面如果不是传给你一个什么zip文件、word文件以及视频音频文件,只是普通的HTML页面的话,绝对用不上1M的内存,800K以上的HTML页面就很少见了。
不过要是楼住的代码贴得没问题的话,我想应该是函数的调用方式出了问题,你没有指定函数的调用方式,在函数压参的时候出错了!
1、函数调用规则不同。PASCAL是由被调函数自己清堆栈,C/C++是调用者清堆栈,所以DLL的函数说明要指定调用规则是cdecl,而不是stdcall。2、在C中没有和Delphi的String类型对应的类型,所以把String类型该为pchar。第四个参数要改为pchar*,在DLL中分配返回的内存,存放response,由调用者释放内存。写了这么多,希望对大家有用。如果你有更好的解决方案,请不吝赐教。