关于如何避免头文件的循环依赖,你有什么好建议吗?
当然,从一开始,我就尝试尽可能透明地设计项目.但是,随着越来越多的功能和类的添加,以及项目变得不那么透明,循环依赖开始发生.
是否有任何通用,经过验证和工作的规则?谢谢.
当我从头开始设计我的系统时,我经常面临一个两难的境地:我的对象是否应该将信息推送到另一个对象中,或者对象是否应该从另一个对象中提取必要的数据.
在OOP设计中是否有类似标准的东西,我更喜欢按对象的数据拉动,而不是数据推入对象?
任何人都可以提出建议吗,从长期角度来看,或者当OOP结构/框架/图表变得更复杂时,一种方法是否优于另一种方法?
我可以请一个HTML5文件拖放实现的好例子吗?如果从外部应用程序(Windows资源管理器)到浏览器窗口执行拖放操作,源代码应该有效.它应该在尽可能多的浏览器上工作.
我想问一个有很好解释的示例代码.我不想使用第三方库,因为我需要根据我的需要修改代码.代码应基于HTML5和JavaScript.我不想使用JQuery.
我花了一整天寻找好的材料来源,但令人惊讶的是,我没有找到任何好的东西.我发现的示例适用于Mozilla,但不适用于Chrome.
如果C++ STL包含二进制搜索树(BST)实现,或者我应该构建自己的BST对象,请知道吗?
如果STL没有实施BST,是否有可用的库?
我的目标是能够尽快找到所需的记录:我有一个记录列表(它不应该是几千个.),我在该列表中执行每帧(它的计算机游戏)搜索.我使用unsigned int作为我感兴趣的记录的标识符.无论什么方式,最快的将最适合我.
我尝试了解ReadDirectoryChangesW
功能,以便能够有效地了解多个目录中的内容更改(文件被覆盖,文件被删除,重命名等等).
我最近的一个观察是,对于每个文件写入操作,我总是收到两个单个文件的通知.
我非常仔细地追踪了这一点,我确信,如果我覆盖一个文件(比如一个带有新内容的.txt文件 - 里面几个额外的字母),ReadDirectoryChangesW()
每个文件保存会通知我两次.
这是严肃的事情,因为我希望每次更改只通知一次.我不希望无意中重复在我的应用程序中只发生一次的操作.
这种行为是否已知?有没有办法每次更改只收到一个通知,好吗?有没有办法有效避免双重通知?
我用:
我使用非常基本的代码来进行测试,但你会想看到它,所以这里是:
HANDLE hDir = CreateFile(
lpDir,
FILE_LIST_DIRECTORY,
FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE,
NULL,
OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS,
NULL);
int nCounter = 0;
FILE_NOTIFY_INFORMATION strFileNotifyInfo[1024];
DWORD dwBytesReturned = 0;
while(TRUE)
{
if( ReadDirectoryChangesW ( hDir, (LPVOID)&strFileNotifyInfo, sizeof(strFileNotifyInfo), FALSE, FILE_NOTIFY_CHANGE_LAST_WRITE, &dwBytesReturned, NULL, NULL) == 0)
{
ErrorCheck(_T("Reading Directory Change"));
}
else
{
_tcout << _T("File …
Run Code Online (Sandbox Code Playgroud) 我希望通过Android电子市场销售付费应用程序,但我的国家/地区(斯洛伐克)不在授权国家/地区列表中(http://market.android.com/support/bin/answer.py?hl=zh-CN&answer=150324).
我可以通过从国内(我的情况下是奥地利)获得Android Market商品的银行获得银行帐户和支付卡来暂时克服此限制吗?
您知道吗,Android Market商家是否可以根据银行的位置,在卡中编码的住所或互联网连接位置来使用商店?
解决这个问题可以帮助许多其他希望分发付费应用的人,但他们的国家尚未被允许使用Android Market商品.
在这个伟大的网页上,我找到了一个缓动算法列表,可以为我的网页增添不错的视觉吸引力.
尽管如此,我发现在那里简要提到了函数参数(见下文),算法的行为并不像我希望的那样.我可以请求解释在下面提到的函数的参数中应该输入什么值/范围?
参数列表:
Math.easeOutCubic = function (t, b, c, d) {
t /= d;
t--;
return c*(t*t*t + 1) + b;
};
Run Code Online (Sandbox Code Playgroud)
是否应将值逐步添加到从函数获得的最后一个值,还是应将它们添加到初始0位置?
我听说越来越多,我应该使用智能指针而不是裸指针,尽管我已经实现了有效的内存泄漏系统.
请问使用智能指针的正确编程方法是什么?它们是否真的应用,即使我检查分配的内存块上的内存泄漏?还是由我决定吗?如果我不使用它们,这可以被视为编程弱点吗?
如果强烈建议使用智能指针(例如:std :: auto_ptr),我应该使用它们而不是每个裸指针吗?
我希望使用命名共享内存来实现IPC.
为此,其中一个步骤是使用CreateFileMapping()获取映射内存对象的句柄.
我完全按照MSDN网站的说法做到:http://msdn.microsoft.com/en-us/library/aa366551( v = VS.85).aspx:
hFileMappingHandle = CreateFileMapping
(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
0, // maximum object size (high-order DWORD)
256, // maximum object size (low-order DWORD)
"Global\\MyFileMappingObject" // name of mapping object
);
DWORD dwError = GetLastError();
Run Code Online (Sandbox Code Playgroud)
但是,返回的句柄始终为0x0,并且返回的系统错误代码为:0x5(拒绝访问.)
有没有人有同样的经历,还有一种解决方法吗?我使用MSDN网站作为我的参考,所以我不认为,代码中存在问题.
右键单击Windows中的文件(例如:Windows 7 64位)后,会出现一个弹出菜单,其底部带有"属性".
转到:鼠标 - 右键单击文件 - >属性 - >详细信息我得到一个包含文件描述的选项卡:
是否可以从Visual Studio 2010中设置上述任何参数(示例:文件版本,产品版本,版权)?我希望在每次编译/构建会话后都有可用的参数.
如果是的话,怎么做?如果没有,设置它们的适当方法是什么?我还没有在互联网上找到任何相关内容.
c++ ×6
windows ×3
javascript ×2
visual-c++ ×2
winapi ×2
algorithm ×1
android ×1
animation ×1
architecture ×1
binary-tree ×1
draggable ×1
file-io ×1
google-play ×1
html5 ×1
math ×1
oop ×1
pointers ×1
windows-7 ×1