ISO C++表示C++中成员函数的内联定义与使用内联声明它的相同.这意味着将在使用成员函数的每个编译单元中定义该函数.但是,如果函数调用因任何原因无法内联,则该函数将"照常"实例化.(http://msdn.microsoft.com/en-us/library/z8y1yy88%28VS.71%29.aspx我对这个定义的问题在于它没有告诉它将被实例化到哪个翻译单元.我遇到的问题是,当在一个静态库中面对两个目标文件时,这两个目标文件都引用了一些无法内联的内联成员函数,链接器可能会"选择"任意对象文件作为定义的源.这种特殊选择可能会引入不必要的依赖关系.(除其他事项外)
例如: 在静态库中
A.h:
class A{
public:
virtual bool foo() { return true; }
};
Run Code Online (Sandbox Code Playgroud)
U1.cpp:
A a1;
Run Code Online (Sandbox Code Playgroud)
U2.cpp:
A a2;
Run Code Online (Sandbox Code Playgroud)
和许多依赖
在另一个项目 main.cpp中:
#include "A.h"
int main(){
A a;
a.foo();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
第二个项目是第一个.我如何知道编译器将使用哪个定义,以及哪些目标文件与其依赖关系将被链接?那个标准上有什么标准吗?(试过,但未能找到)
谢谢
编辑:因为我看到有些人误解了问题所在,我想强调:如果编译器决定为该函数创建一个符号(在这种情况下,由于'虚拟',它将会是不同目标文件中的几个(外部看到的)实例化,链接器选择哪个定义(从哪个目标文件?)?)
如果是这样,为什么一些Win32标头使用它?
例如:
BOOL APIENTRY VerQueryValueA( const LPVOID pBlock,
LPSTR lpSubBlock,
LPVOID * lplpBuffer,
PUINT puLen
);
Run Code Online (Sandbox Code Playgroud)
多一点的阐述:如果API从不使用引用(或任何其他C++ -只建),但只有指针和价值观,什么是具有点const LPVOID对LPCVOID.
我应该把每个地方都const LPVOID视为真正含义的地方LPCVOID吗?(因此添加演员是安全的)
进一步澄清:const LPVOID pBlock在这种情况下,这似乎确实是一个错误.Windows 2008的SDK它替换到LPCVOID的VerQueryValue签名.很久以前,葡萄酒就这么做了.
我希望窗口尊重内部控件的MinWidth/ MinHeight和MaxWidth/ MaxHeight规范.
有人建议使用SizeToContent,但这只会有助于设置初始窗口大小,而不是约束.
其他人建议覆盖MeasureOverride并设置窗口的最小/最大高度和宽度,但这似乎有点不洁,考虑到这样一个微不足道的问题肯定会有一个纯粹的声明性解决方案.
只是提到另一个似乎合理但不起作用的解决方案(之前在一个被删除的答案中提到过):MinWidth窗口MinWidth与控件的绑定没有考虑窗口装饰.
我正在寻找一种在Java中将十六进制转换为ascii的方法.一个例子:
byte temps[] = new byte[4];
temps[0] = 0x74;
temps[1] = 0x65;
temps[2] = 0x73;
temps[3] = 0x74;
String foo = ..(temps);
System.out.print(foo);
Run Code Online (Sandbox Code Playgroud)
那应该输出"测试".有人有想法吗?
我感谢每一个帮助!
我的VMWare Windows XP会话说"磁盘空间不足"要复制到6 GB的数据库转储中,但是有超过14 GB的空闲时间:(.
这是一个可增长的磁盘.它;目前的大小为5.5 GB.
有什么建议?
我对jquery很新,并且无法弄清楚如何根据容器中div的数量构建一系列span元素.我正在尝试使用jquery.flow插件在我的站点中的页面上创建一个滑块.我的CMS将踢出div中的所有图像,但我想自动创建必要的span元素.我正在尝试使其动态化,允许用户根据需要创建尽可能多的滑块图像.代码结构如下所示:
<div id="myController">
<span class="jFlowControl">No 1 </span>
<span class="jFlowControl">No 2 </span>
<span class="jFlowControl">No 3 </span>
<span class="jFlowControl">No 4 </span>
</div>
<div id="mySlides">
<div>First Slide</div>
<div>Second Slide </div>
<div>Third Slide </div>
<div>Fourth Slide </div>
</div>
Run Code Online (Sandbox Code Playgroud)
我可以轻松生成容器div中的div列表.我想写一段jquery,它将为每个div添加一个span.如果我有4个div,则脚本将创建4个跨度.如果我有10个div,则脚本将创建10个跨度.
谢谢你的帮助!
c++ ×2
ascii ×1
batch-file ×1
cmd ×1
filesystems ×1
hex ×1
input ×1
java ×1
jquery ×1
layout ×1
typedef ×1
vmware ×1
winapi ×1
windows-xp ×1
wpf ×1