VS项目中的包含目录、库目录、附加包含目录、附加库目录、附加依赖项均在”项目->属性->配置属性”下进行配置,具体说明如下:
VC++目录:
包含目录: 寻找#include<*.h>中的*.h的搜索目录
引用目录:是和托管C++相关的库目录,#using
库目录:寻找.lib文件的搜索目录
C/C++:
常规->附加包含目录:
寻找#include<*.h>中的*.h的搜索目录。使用时直接#include<*.h>。
如果 “包含目录”中包含了,就可以不用配置。
包含目录:修改了系统的include宏的值,是全局的;
附加包含目录:用于当前项目,对其他项目没有影响。
链接器:
常规->附加库目录:寻找.lib文件的搜索目录,如果 “库目录”中包含了,就可以不用配置。
输入->附加依赖项:lib库。
动态库
需要向项目中添加.dll动态链接库时,需要添加的.dll文件拖拽到项目生成的.exe所在的文件夹下。
托管
关于托管,以vc++ 调用c#为例:
#using "ClassLibrary1.dll"
#pragma managed
using namespace ClassLib;
//using namespace System;
bool CTest::test()
{
try{
::System::String ^sz = "this is string1";
ClassLibrary^ helper = gcnew ClassLibrary(sz);
::System::String ^testdata = "testa";
::System::String ^ jm2 = helper->Encrypt(testdata);//加密
char* ch1 = "this is chars ";
//将char*转换为System::String^
String^ str1 = System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)ch1);
//System::String^转换为char*
char* ch2 = (char*)(void*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(str1);
::System::String ^ jm1 = helper->Decrypt(jm2);//解密
CString tip1 = jm2;
CString tip = jm1;
}
catch (...)
{
AfxMessageBox("error");
}
}
仅是个人理解,可能存在错误,敬请大佬指出错误