我想测试扩展存储过程(我知道它们现在已被弃用,但出于个人原因我想测试它们)。
我已经在 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(未找到程序)。
我有两个问题:
- 我的 C++ 代码正确吗?
- 我应该在 SQL 中做更多的事情来在 dll 中调用这个函数吗?
谢谢你的帮助