C++ cli LNK2020在进行变量静态测试时
我使用C++/CLI在.NET应用程序和动态加载的C dll之间进行链接 到目前为止,对DLL的所有访问都是基于实例的 班级C++ cli LNK2020在进行变量静态测试时,c++-cli,C++ Cli,我使用C++/CLI在.NET应用程序和动态加载的C dll之间进行链接 到目前为止,对DLL的所有访问都是基于实例的 班级 namespace NxCore { public class NativeConnector { 具有用于各种方法引用的变量: HMODULE hLib; NxCoreProcessTape pfNxProcessTape; NxCorePriceToDouble pfNxPriceToDouble;
namespace NxCore {
public class NativeConnector {
具有用于各种方法引用的变量:
HMODULE hLib;
NxCoreProcessTape pfNxProcessTape;
NxCorePriceToDouble pfNxPriceToDouble;
NxCoreGetDefinedString pfNxCoreGetDefinedString;
NxCoreGetSymbolAtom32 pfNxGetSymbolAtom32;
NxCoreStateGetMMQuotes pfNxStateGetMmQuotes;
我在连接方法中加载它们:
hLib = ::LoadLibrary("NxCoreAPI.dll");
然后
等等
现在我需要将其移动到多实例,所以我希望在第一次连接时加载,在最后一次断开连接时卸载。这意味着变量必须是静态的
在C#中,我只会将它们设置为静态。我试了一个:
static HMODULE hLib;
而链接失败:
4> NativeConnector.obj:错误LNK2020:未解析的令牌(0A00006D)“私有:静态结构HINSTANCE\uuu*NxCore::NativeConnector::hLib”(?hLib@NativeConnector@NxCore@Connectivity@Tradex@@0PAUHINSTANCE\uuUa)
有人知道怎么修吗?头文件用于.cpp文件,因此-它不应有不同的定义
谁能告诉他如何解决这个问题?正如我所说的,我想把变量移到静态,然后用“使用计数”来确保我在上次断线时释放。 < P>从代码中看,我不清楚问题发生在REF类(.NET类)还是原生C++类中。 下面是我的建议,假设为本机类型:您需要定义声明的成员
- 标题
struct X { static int s_data; };
- cpp资料来源:
#include "X.h" int X::s_data /* = 42 */;
<>对于REF类型,我实际上期望与C一样的静态语义,如C</p>< P>。从代码中我不清楚问题是在REF类(.NET类)还是本地C++类中发生的。 下面是我的建议,假设为本机类型:您需要定义声明的成员
- 标题
struct X { static int s_data; };
- cpp资料来源:
#include "X.h" int X::s_data /* = 42 */;