通常在 .cpp 文件中使用变量会导致该变量全局可用,如下所示:
.h file:
extern int myGlobal;
void work();
.cpp file:
int myGlobal = 42;
void work(){ myGlobal++; }
Run Code Online (Sandbox Code Playgroud)
当 .cpp 文件放入静态库并且多个共享库 (DLL) 或针对该静态库的可执行链接时,每个文件都有自己的 .cpp 文件副本myGlobal。work() 将修改它自己的变量版本。
我现在的问题是:有没有办法获取进程范围的唯一变量或指向该变量的指针?与线程范围变量的线程局部存储类似。它不必是平台独立的。如果它能在 Win32 中运行,那就加分了:)
我希望能够在我的asp.net网站的app_themes文件夹中的css文件中附加一个版本号,以便修改该文件会强制浏览器从服务器获取文件而不是使用缓存.
css输出路径看起来像〜/ app_themes/blue/blue.css?v = 1234
知道如何在不必手动编辑文件名的情况下完成它吗?
我试图在我的圆形NSTextField中显示"剩余字符通知",并在Interface Builder的帮助下使用两个NSTextField获得它,它看起来像是这样:
alt text http://jeenaparadies.net/t/s/Twittia-NSTextField1.png
但是当我写一点点时,它看起来像那样:
alt text http://jeenaparadies.net/t/s/Twittia-NSTextField2.png
我唯一能想到的是继承NSTextField并使用它做一些事情,因此它不会在数字下面绘制文本,但我不知道如何开始并需要真正的帮助.
我基本上有这个问题:现在,我们有一个系统,它获取一个字符串作为输入,它基本上说ACTION:.
对于每个动作,都有一个自动生成的函数(Rational Rose GRRR),例如
bouncer_comm.chatMessage("data goes here").sendAt(msg->sapIndex0());
bouncer_comm.askforname().sendAt(msg->sapindex0());
Run Code Online (Sandbox Code Playgroud)
bouncer_comm返回一个RTOutSignal,我无法手动创建它们,因为玫瑰使用了奇怪的结构.
现在,我唯一的选择是创建一百个左右的if语句,我这样做:
if(action == "CHAT") bouncer_comm.chatMessage("data goes here").sendAt(msg->sapIndex0());
Run Code Online (Sandbox Code Playgroud)
这真是令人烦恼.
什么是避免这种情况的最佳方法?我看过/试过无数的东西,这是理性玫瑰(前2k)的旧版本,是的.
如果有人有任何想法会很惊人.
只是一个快速而简单的问题,但在任何文档中都找不到它.
template <class T>
T* Some_Class<T>::Some_Static_Variable = NULL;
Run Code Online (Sandbox Code Playgroud)
它用g ++编译,但我不确定这是否有效.是吗?
我正在研究一个与Informix一起运行的系统,因此我开始学习越来越多关于Informix的知识.我正在考虑学习并获得Informix认证.
你觉得Informix有未来吗?或者我应该尝试更多地了解Oracle或MySQL或其他一些流行的数据库系统?
我目前正在使用VS 2005,因为我维护的大多数程序都是为.Net 2.0编写的,我有一个需要.Net 3.5的新程序,如果我切换到VS 2008,我可以这样做,而我的.Net没有任何问题2.0程序?我应该注意什么?
PS我主要使用Winform应用程序,如果这有任何区别.
谢谢
我在iPhone上使用NSURLConnection异步连接进行请求缓存时遇到了一个小问题.我不知道我是否理解错误的东西,或者Cocoa是否与它应该做的相反...
NSURLRequest的文档说:
NSURLRequestReloadIgnoringLocalCacheData
指定应从原始源加载URL加载的数据.不应使用现有的缓存数据来满足URL加载请求.
和:
NSURLRequestReloadIgnoringLocalAndRemoteCacheData
指定不仅应忽略本地缓存数据,而且应指示代理和其他中间人在协议允许的情况下忽略其缓存.
现在,如果我使用NSURLRequestReloadIgnoringLocalCacheData(它应该忽略本地缓存,但使用远程缓存,如果可用)发送NSURLRequest,则发送的标头是:
GET /dashboard HTTP/1.1 User-Agent: XBlip1.0 CFNetwork/422.15.2 Darwin/9.6.0 (i386) (iMac8%2C1) X-Blip-Api: 0.02 Accept: application/json Authorization: Basic (...) Accept-Language: en-us Accept-Encoding: gzip, deflate Connection: keep-alive Host: api.blip.pl
状态是200 OK.但是,如果我使用NSURLRequestReloadIgnoringLocalAndRemoteCacheData,它应该忽略本地和远程缓存,顾名思义,添加了一个额外的标头:
If-None-Match: "d751713988987e9331980363e24189ce"
并且响应是304 Not Modified.我已经检查了HTTP RFC,并且对于"If-None-Match"它说:
如果任何实体标签与在该资源上对类似GET请求(没有If-None-Match标头)的响应中返回的实体的实体标签匹配,(...)则服务器不得执行请求的方法(...)相反,如果请求方法是GET或HEAD,服务器应该响应304(未修改)响应
因此,如果我使用NSURLRequestReloadIgnoringLocalAndRemoteCacheData而不是忽略远程缓存,Cocoa似乎明确告诉远程服务器它应该使用远程缓存,如果我使用NSURLRequestReloadIgnoringLocalCacheData,它不会添加该行,实际上远程缓存不是用过的.
那究竟发生了什么?我错过了什么,或者Cocoa设置了错误的标题?
我想编写一个函数GetHashCodeOfList(),它返回一个字符串列表的哈希码,而不管顺序如何.给定具有相同字符串的2个列表应返回相同的哈希码.
ArrayList list1 = new ArrayList()
list1.Add("String1");
list1.Add("String2");
list1.Add("String3");
ArrayList list2 = new ArrayList()
list2.Add("String3");
list2.Add("String2");
list2.Add("String1");
GetHashCodeOfList(list1) = GetHashCodeOfList(list2) //this should be equal.
Run Code Online (Sandbox Code Playgroud)
我有几点想法:
我可以先对列表进行排序,然后将排序后的列表合并为1个长字符串然后调用GetHashCode().然而,排序是一个缓慢的操作.
我可以在列表中获取每个字符串的哈希值(通过调用string.GetHashCode()),然后乘以所有哈希值并调用Mod UInt32.MaxValue.例如:"String1".GetHashCode() * "String2".GetHashCode * … MOD UInt32.MaxValue.但这会导致数字溢出.
有人有想法吗?
在此先感谢您的帮助.
c++ ×3
.net ×1
app-themes ×1
asp.net ×1
boost ×1
c# ×1
class ×1
cocoa ×1
cocoa-touch ×1
hash ×1
http ×1
informix ×1
iphone ×1
nstextfield ×1
objective-c ×1
ruby ×1
static ×1
string ×1
templates ×1
vb.net ×1