0

我在使用第三方DLL,库和头文件时遇到问题。我试图调用一个函数,让它返回一个没有运气的值。 这是假设要调用的函数。C++通过引用传递类对象?

布尔COAuthSDK :: GetRequestToken(CClientDetails & objClientDetails)

它有什么需要

名称IN/OUT说明 m_environment在可选此信息。可能的值是SANDBOX(默认)和LIVE。 m_strConsumerKey IN的OAuth消费者密钥由E * TRADE 提供m_strConsumerSecret由E * TRADE m_strToken由OUT功能成功的返回 m_strTokenSecret通过OUT如果成功 m_strCallback在可选函数返回提供OAuth用户端密钥;默认值是“oob”

这是COAuthSDK标头。

#ifndef _OAUTHSDK_H_INCLUDED_ 
#define _OAUTHSDK_H_INCLUDED_ 

#include "ETCOMMON\CommonDefs.h" 
#include "ETCOMMON\OAuthHelper.h" 
using namespace std; 

#ifdef OAUTH_LIBRARY_EXPORT // inside DLL 
# define OAUTH_API __declspec(dllexport) 
#else //outside DLL 
# define OAUTH_API __declspec(dllimport) 
#endif //OAUTH_LIBRARY_EXPORT 

class OAUTH_API COAuthSDK 
{ 
public: 
COAuthSDK(void); 
virtual ~COAuthSDK(void); 

bool GetRequestToken(CClientDetails &objClientDetails) throw (...); 
bool GetAccessToken(CClientDetails &objClientDetails,string strVerifier) throw (...); 
void RenewToken(CClientDetails &objClientDetails) throw (...); 
void RevokeToken(CClientDetails &objClientDetails) throw (...); 
string AuthorizeUrl(CClientDetails &objClientDetails) throw (...); 

string GetProtectedResourse(CClientDetails &objClientDetails,string strUrl,  HttpMethodConstants httpMethod = GETMethod, string postParameters = NULL) throw (...); 

};

#endif//_OAUTHSDK_H_INCLUDED_ 

和CClientDetails头

#pragma once 

#ifndef _CLIENTDETAILS_H_INCLUDED_ 
#define _CLIENTDETAILS_H_INCLUDED_ 

using namespace std; 

#include "CommonDefs.h" 

#ifdef COMMON_LIBRARY_EXPORT // inside DLL 
# define COMMON_API __declspec(dllexport) 
#else // outside DLL 
# define COMMON_API __declspec(dllimport) 
#endif // COMMON_LIBRARY_EXPORT 

class COMMON_API CClientDetails 
{ 
public: 
CClientDetails(); 
CClientDetails(string strConsumerKey,string strConsumerSecret,Environment environment); 
virtual ~CClientDetails(); 

Environment GetEnv(); 
void SetEnv(Environment env); 

string GetConsumerKey(); 
void SetConsumerKey(string consumerKey); 

string GetConsumerSecret(); 
void SetConsumerSecret(string consumerSecret); 

string GetToken(); 
void SetToken(string token); 

string GetTokenSecret(); 
void SetTokenSecret(string tokenSecret); 

private : 
Environment m_environment; 
string m_strConsumerKey; 
string m_strConsumerSecret; 
string m_strToken; 
string m_strTokenSecret; 
string m_strCallback; 
}; 
#endif//_CLIENTDETAILS_H_INCLUDED 

和我的主要CPP。

int _tmain(int argc, _TCHAR* argv[]){CClientDetails clientDetails; 

CClientDetails objClientDetails; 
GetRequestToken(CClientDetails &objClientDetails); 
objClientDetails.SetEnv(SANDBOX); 
objClientDetails.SetConsumerKey("1f5328f725dee654e0a4499f161b8fe4c6e"); 
objClientDetails.SetConsumerSecret("d39a8043cc0c7686920fd0655e47281e6a5"); 
objClientDetails.GetToken(); 
objClientDetails.GetTokenSecret(); 
cin.get(); 
cin.get(); 
return 0; 

    }` 

当我尝试建立功能它说,它在DLL中的,所以我知道我必须调用它。如果有人可以帮助,将不胜感激。如果需要,这里是建立网站的链接https://us.etrade.com/ctnt/dev-portal/getContent?contentUri=V0_Code-SDKGuides-VC

+0

哦,看,另一个库使用保留的标识符。 – chris

回答

0
GetRequestToken(CClientDetails &objClientDetails); 

不好。你需要像

COAuthSDK sdk; 
sdk.GetRequestToken(objClientDetails); 

注意,这只是一些可能是正确的语法,你就从DOX弄清楚如何获得SDK实例使用。