gpt4 book ai didi

TFS API 的 C++ 包装器

转载 作者:太空宇宙 更新时间:2023-11-04 13:43:24 25 4
gpt4 key购买 nike

我在 VS 2012 中有 2 个项目试图为 Team Foundation Server API 构建 C++ 包装器。

#pragma once    
using namespace System;
using namespace System::Reflection;
using namespace System::Collections::ObjectModel;
using namespace Microsoft::TeamFoundation::Client;
using namespace Microsoft::TeamFoundation::Framework::Common;
using namespace Microsoft::TeamFoundation::Framework::Client;

namespace ManagedDll {
public ref class TFSAUth
{
public:
TFSAUth();
~ TFSAUth();
void AuthUser()
{
System::String ^x = gcnew String( "http://myhost:8080/tfs");
System::String ^u = gcnew String( "user");
System::String ^p = gcnew String( "Pass");
System::Net::NetworkCredential ^c = gcnew System::Net::NetworkCredential(u, p);
TeamFoundationServer ^something = gcnew TeamFoundationServer(x, c);
something->Authenticate();
System::String ^col = gcnew String (something->TfsTeamProjectCollection->Name);
Console::WriteLine(col);
}
private:
};

TFSAUth:: TFSAUth()
{
}

TFSAUth::~ TFSAUth()
{
}
}

__declspec(dllexport) void Auth()
{
ManagedDll::TFSAUth work;
work.AuthUser();
}

这是库项目,我有一个使用该库的测试应用程序。

#include "stdafx.h"
#include "conio.h"
#include <iostream>
#include <windows.h>
#include "ManagedDll.h"

_declspec(dllexport) void Auth();

int _tmain()
{
Auth();

system("pause");
return 0;
}

一直在工作一段时间,打开这个项目看看我是否能取得进一步的进展。今天它编译失败,给我链接器错误。

TestApp.obj : error LNK2019: unresolved external symbol "void __cdecl Auth(void)" (?Auth@@YAXXZ) referenced in function _wmain

我不确定为什么,因为什么都没有改变。但不仅如此,我想知道我在为 TFS API 创建 C++ 包装器时是否做对了。

非常感谢任何帮助/示例/建议,因为这是我第一次尝试包装器。

最佳答案

在您的 native C++ 项目(测试应用程序)中,您必须包含托管 C++ 项目 (ManagedDll) 的 lib 文件。

manage C++ DLL 中导出的DLL 函数与原生C++ DLL 中导出的DLL 函数的处理方式相同,您可以遵循:Lib Files as Linker Input使其发挥作用。

另外,你应该删除

_declspec(dllexport) void Auth();

在测试应用程序中。

关于TFS API 的 C++ 包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26914842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com