我想测试扩展存储过程(我知道它们现在已被弃用,但出于个人原因我想测试它们。)
我在VC ++中生成了一个dll文件,这是我的代码:
//First.h
#include<iostream>
#include<srv.h>
using namespace std;
RETCODE _declspec(dllexport) xp_firstfun(SRV_PROC *srvproc);
和
//main.cpp
#include<iostream>
#include "First.h"
using namespace std;
RETCODE xp_firstfun(SRV_PROC *srvproc)
{
cout<<"Hello World froom DLL"<< endl;
cin.get();
return 0;
}
我可以使用此命令成功将此dll添加到数据库:
sp_addextendedproc 'xp_firstfun', 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\FirstDLL.dll'
但如果我尝试执行该功能:
exec xp_firstfun
我正面临这个错误:
无法在库C:\ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Binn \ FirstDLL中找到函数xp_firstfun。原因:127(找不到程序)。
我有两个问题:
谢谢你的帮助
答案 0 :(得分:0)
更改您的声明。这可能会对您有所帮助,因为在c ++中,函数名称在编译期间被修改为名称修改的一部分。
extern "C"
{
RETCODE _declspec(dllexport) xp_firstfun(SRV_PROC *srvproc);
}