草庐IT

签名校验

全部标签

c++ - 为什么我的 C++ 程序集没有签名?

我有一个C++项目,设置为/clr,由同一解决方案中的C#项目引用。不幸的是,似乎C++没有得到正确的签名,导致错误消息“程序集没有强名称”。(sn.exe同意该错误。)但是,在项目设置(链接器/高级)中有一个snk文件,因此应该对其进行签名。此外,所有项目设置似乎都与同一解决方案中的另一个C++项目相同-一切正常。我为此纠结了几个小时后发现的一件事:消除/NOLOGO时切换链接器,很明显链接器被调用了两次。我完全不知道为什么会这样。现在,在正常工作的项目中,链接器在命令行(/KEYFILE:)中通过snk文件进行both调用,在不工作的项目中,第二次调用不获取传递的snk文件。为什么

c++ - 我可以在 typedef 函数签名中放置 throw 声明吗?

是否可以声明一个包含抛出规范的函数指针?例如,我有这个功能:voidwithout_throw()throw(){}并想创建一个接受它作为参数的函数,完成throw()部分。我试过将它添加到typedef中,但这似乎不起作用:typedefvoid(*without)()throw();GCC给我错误error:‘without’declaredwithanexceptionspecification。 最佳答案 你不能输入定义。标准中明确不允许这样做。(将其替换为noexcept也无济于事,同样的问题。)引用C++11草案n329

SSL之mkcert构建本地自签名

文章目录1.什么是SSL2.mkcert:快速生成自签名证书2.1mkcert的工作流程如下:2.2window本地实现自签证书2.2.1下载安装2.2.2下载,生成本地SSL2.2.3生成pem自签证书,可供局域网内使用其他主机访问。2.2.4使用-psck12生成*.p12文件2.3SpringBoot配置SSL2.3.1基于证书文件与私钥文件2.3.2基于PKCS12生成*.p12/*.ptx文件1.什么是SSLSSL(SecureSocketsLayer,安全套接层)是一种加密通信协议,最早由NetscapeCommunications公司于1994年提出。它的主要目的是为网络通信提供

c++ - 为什么参数修饰符(即 'const' 或 'volatile' )不被视为函数类型或签名的一部分?

请注意,以下两个函数具有相同的类型和签名:voidfoo1(intt){}//foo1hastype'void(*)(int)',andsignature'(*)(int)'voidfoo2(constintt){}//Alsotype'void(*)(int)',signature'(*)(int)'(const不是函数类型或函数签名的一部分)。同样,返回类型上的修饰符(const或volatile)不会影响函数类型或函数签名。但是,在函数定义本身(未显示)中,命名变量t确实在foo2中保持const资格。有许多StackOverflow问题在讨论为什么函数的返回类型不被视为函数签名

c++ - 为什么要担心签名类型的 >> 中的 'undefined behavior'?

我的问题与thisone有关并且将包含几个问题。对我来说,对上述问题最明显的(意味着我会在我的代码中使用它)解决方案就是:uint8_tx=somevalue;x=(int8_t)x>>7;是的,是的,我听到你们所有人的声音......未定义的行为,这就是为什么我没有发布我的“解决方案”。我有一种感觉(也许这只是我病态的想法)术语“未定义的行为”在SO上被过度使用,只是为了证明如果问题被标记为c/c++,就可以否决某人。所以-让我们(暂时)搁置C/C++标准,想想日常生活/编程、真实的编译器实现以及它们为当代硬件生成的代码。考虑到以下因素:据我所知,我遇到的所有硬件都有不同的算术和逻辑

c++ - 如何在 C++ 中约束可调用对象的签名?

templatevoidFun(TCallablec){...}如何在不使用std::function的情况下指示上述代码中的c必须具有某些特定签名(比方说int(double,double))? 最佳答案 看起来您只需添加static_assert(std::is_same::value,"cmusttaketwodoublesandreturnint"). 关于c++-如何在C++中约束可调用对象的签名?,我们在StackOverflow上找到一个类似的问题:

c++ - 为什么这个函数不能用明显不同的签名之一重载?

这个问题在这里已经有了答案:SFINAEdidnotcompile[duplicate](2个答案)关闭7年前。由于error:redefinitionof‘templatevoidfunc(Integer)’,以下代码无法编译#include#includetemplate::value>::type>voidfunc(FloatfloatVal){std::cerr::value>::type>voidfunc(Integerinteger){std::cerr但是这两个函数在模板实例化上显然会有不同的签名。那为什么不能编译呢?请注意:我确实知道如何解决这个问题:只需向其中一个函数

校验ChatGPT 4真实性的三个经典问题:提供免费测试网站快速区分 GPT3.5 与 GPT4

现在已经有很多ChatGPT的套壳网站,以下分享验明GPT-4真身的三个经典问题,帮助你快速区分套壳网站背后到底用的是GPT-3.5还是GPT-4。大家可以在这个网站测试:https://ai.hxkj.vip,免登录可以问三条,登录之后无限制。咱们使用免登录的额度测试就已经够用了测试问题1:Whatistomorrowinrelationtoyesterday’stoday?(昨天的当天是明天的什么?)GPT-3.5回复:Yesterday(昨天)GPT-4回复:Past(前天)这里可以有很多变种,例如:把昨天改成前天。测试问题2:Thereare9birdsinthetree,thehun

c# - 你将如何声明 DLL 导入签名?

这是UsingpHashfrom.NET的后续帖子您将如何在.NET中声明以下C++声明?intph_dct_imagehash(constchar*file,ulong64&hash);到目前为止我有[DllImport(@"pHash.dll")]publicstaticexternintph_dct_imagehash(stringfile,refulonghash);但是我现在遇到以下错误ulonghash1=0,hash2=0;stringfirstImage=@"C:\Users\dance2die\Pictures\2011-01-23\177.JPG";stringse

c++ - 我可以实现其签名仅基于类型 ID 不同的模板化函数吗?

这里有一些枚举类:enumclassRace:char{AINU,ELF,DWARF,MAN,EAGLE,HOBBIT,ENT,ORC,WIZARD};enumclassColor:char{RED,ORANGE,YELLOW,GREEN,BLUE,PURPLE};enumclassDirection:char{UP,DOWN,LEFT,RIGHT};我想为每个实现一个enum_to_string函数和一个string_to_enum函数。将枚举转换为字符串没有问题,因为我可以重载相同的函数名。std::stringto_string(Raceconst&enum_value);std