delphi调用vc dll

来源:百度知道 编辑:UC知道 时间:2024/05/23 22:10:30
关于delphi调用vc生成dll的问题。我用vc生成的dll,delphi调用会报错,但是一直找不到问题所在,请大家进来帮我看看。
#define _TM_OS2
#include "stdafx.h"
#include "atmi.h"

bool WINAPI DllMain( HMODULE hModule, DWORD dwReason, LPVOID lpvReserved )
{
return TRUE;
}

LRESULT WINAPI TpStrCall1(char *ServiceName, char *Str)
{
MessageBox( 0, ServiceName, "信息!", 0 );
MessageBox( 0, Str, "信息!", 0 );
return(0);
}

LRESULT WINAPI TpStrCall(char *ServiceName, char *SndStr, char *RevStr)
{
char *sendbuf, *rcvbuf;
long rcvlen;
int ret;

if (strlen(SndStr) > 300)
{
MessageBox( 0, "字符串超出指定长度!", "错误!", 0 );
return(tperrno);
}

if (tpinit((TPINIT *) NULL) == -1)
{
MessageBox( 0, "连接初始化错误!", "错误!", 0 );
return(tperrno);
}

if((sendbuf = (char *) tpalloc("STRING&qu

问题需要说详细些,是还没有调用就出错还是正式调用的时候才出错的。
看似没大问题,怀疑是你在调用的时候Delphi这边没有给pchar分配空间。

先确定一下 DLL 里面的函数是不是成功导出了
VS自带有工具,或者用 Ollydbg 之类的调试工具也可以看到

在前面声明一下函数,记得是
__declspec(dllexport) <声明>
的形式