以前在DLL里加都没问题,现在是完全考过来的竟然说不支持此接口?为什么?哪里出错了.
#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")#include <stdio.h> ::CoInitialize(NULL);
CString m_strSource;
HRESULT hr=NULL;
_bstr_t user("");
_bstr_t pwd("");
query = _T("SELECT * FROM Sendtable");
m_strSource=_T("Provider=SQLOLEDB.1;Data Source=");
m_strSource+=m_hostname;
m_strSource+=_T(";Initial Catalog=DataDB;User ID=");
m_strSource+=m_username;
m_strSource+=_T("; PWD=");
m_strSource+=m_password;
source=m_strSource;
hr=m_connection.CreateInstance(__uuidof(Connection));
try{
if(SUCCEEDED(hr))
hr=m_connection->Open(source, user,pwd, adModeUnknown);
if(SUCCEEDED(hr))
hr = m_recordsetsend.CreateInstance(__uuidof(Recordset));
if(SUCCEEDED(hr))
hr = m_recordsetarrive.CreateInstance(__uuidof(Recordset));
// if(SUCCEEDED(hr))
// m_recordsetsend->Open(query, source, adOpenDynamic, adLockOptimistic, adCmdText);
// if(SUCCEEDED(hr))
// hr = m_timers.CreateInstance(__uuidof(Recordset));
if(SUCCEEDED(hr))
m_fConnected = TRUE;
else
m_fConnected = FALSE;
}
catch (_com_error e)
{
AfxMessageBox(e.ErrorMessage());
m_fConnected = FALSE;
}
和做DLL是一模一样的.谁能告诉我呀
#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")#include <stdio.h> ::CoInitialize(NULL);
CString m_strSource;
HRESULT hr=NULL;
_bstr_t user("");
_bstr_t pwd("");
query = _T("SELECT * FROM Sendtable");
m_strSource=_T("Provider=SQLOLEDB.1;Data Source=");
m_strSource+=m_hostname;
m_strSource+=_T(";Initial Catalog=DataDB;User ID=");
m_strSource+=m_username;
m_strSource+=_T("; PWD=");
m_strSource+=m_password;
source=m_strSource;
hr=m_connection.CreateInstance(__uuidof(Connection));
try{
if(SUCCEEDED(hr))
hr=m_connection->Open(source, user,pwd, adModeUnknown);
if(SUCCEEDED(hr))
hr = m_recordsetsend.CreateInstance(__uuidof(Recordset));
if(SUCCEEDED(hr))
hr = m_recordsetarrive.CreateInstance(__uuidof(Recordset));
// if(SUCCEEDED(hr))
// m_recordsetsend->Open(query, source, adOpenDynamic, adLockOptimistic, adCmdText);
// if(SUCCEEDED(hr))
// hr = m_timers.CreateInstance(__uuidof(Recordset));
if(SUCCEEDED(hr))
m_fConnected = TRUE;
else
m_fConnected = FALSE;
}
catch (_com_error e)
{
AfxMessageBox(e.ErrorMessage());
m_fConnected = FALSE;
}
和做DLL是一模一样的.谁能告诉我呀
解决方案 »
- vc++ 细化程序运行就卡死
- 请问关于CMFCToolBar的问题
- 多文档mfc
- 有什么工具可以让一个exe文件直接注册成服务的?
- 哪位有类似超市激光扫描商品的条形码,然后在一个CListCtrl控件上自动添加条形码的控件呢
- 怎样用DirectDraw截屏
- 有人说c++ builder比visual c++ 牛???
- 能否Hooking EXE或DLL中未导出的内部函数
- 急!急!!急!!!真的需要你们帮个忙。能给的分就这么多了。非常感谢。关于word2000 file format
- 在CDialog中,如何使按“ESC”失效?
- 请教,我在VC中调用一个VC写的DLL,出现如下消息,大侠看看
- 版本的问题
把sqlserver的客户端的通用里的tcp/ip,管道一起打开
也许就可以了
因为ADO最终还是用ODBC的源,所以,版本可能会影响.
我上次是在高版本的ODBC源下编译,在低的下面运行就出现了不支持的接口
我又做了个实验的,同样是上面的代码,编译能过(一样是对话框),程序加到了内存了但是不启动对话框出来.(能明白我的意思吗?)
我是这么做的,在STDAFX.H里面加#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
在对话框DLG.CPP里面加
#include "icrsint.h"
#include <stdio.h>
最后在OnInitDialog()里加上面那段最长的代码可是就是不行,
老大,哪里还没做对??