小编Rob*_*Rob的帖子

SVN结账问题

我即将转向SVN作为我选择的RCS(使用CVS多年后)并且有一个基本问题......

我有许多共享项目 - 我希望与许多不同的项目一起使用的代码.是否可以将这些共享文件夹"链接"到需要它们的项目,因此签出项目也会检出共享代码?

例如,假设我的存储库看起来像这样:


--project1
--project2
--shared
--smtp

当我结账project1时,我也想结账共享和smtp.

回到我的CVS时代,我会在其中一个项目文件夹中使用Unix符号链接,但由于我的新SVN存储库不一定托管在Unix机器上,我不能这样做.

svn

3
推荐指数
1
解决办法
685
查看次数

强制我的MFC应用程序在Vista上以管理员身份运行

我有一个使用Visual Studio 2008构建的MFC应用程序,它需要在W2K,XP,2003和Vista上运行.应用程序在注册表中写入HKLM,只有在以管理员身份运行时才能在Vista上运行.

我的问题是:我可以强制应用程序自动作为管理员运行吗?它是否涉及创建清单文件?目前我在stdafx.h中有以下内容,我想在运行中创建一个清单文件:

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
Run Code Online (Sandbox Code Playgroud)

我可以修改此行以强制提升,还是需要对VC项目清单设置执行某些操作?

提前致谢.

c++ mfc windows-vista

3
推荐指数
1
解决办法
7497
查看次数

污染全局命名空间

我认为这里的大多数C++程序员都同意污染全局命名空间是一个坏主意,但是有时候可以忽略这个规则吗?

例如,我有一个我需要在特定应用程序中使用的类型 - 我应该如此定义它:

mytypes.h

typedef int MY_TYPE;

foo.cpp

MY_TYPE myType;
Run Code Online (Sandbox Code Playgroud)

或使用命名空间:

mytypes.h

namespace ns {
typedef int MY_TYPE;
}

foo.cpp

ns::MY_TYPE myType;
...
using namespace ns;
MY_TYPE myType;
Run Code Online (Sandbox Code Playgroud)

你喜欢哪个?是否有可能使用第一种方法?

c++ typedef namespaces

2
推荐指数
3
解决办法
3127
查看次数

源文件的首选命名空间语法

假设Bar在名称空间中调用了一个类foo,您更喜欢哪种语法来源(.cpp/.cc)文件?

namespace foo {
...
void Bar::SomeMethod()
{
    ...
}

} // foo
Run Code Online (Sandbox Code Playgroud)

要么

void foo::Bar::SomeMethod()
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我使用命名空间并且更喜欢第一种语法,但是当使用Visual Studio类向导(WM_COMMAND处理程序等)添加代码时,自动生成的代码使用第二种语法.一种语法比另一种语法有什么优势吗?

c++ namespaces

2
推荐指数
2
解决办法
547
查看次数

检查char*缓冲区是否包含UTF8字符?

在没有BOM的情况下,有一种快速而又脏的方法可以检查char*缓冲区是否包含UTF8字符?

c c++ utf-8

2
推荐指数
2
解决办法
2776
查看次数

发现用户是否具有管理员权限

如何确定当前用户(运行我的应用程序的用户)是否具有管理员权限(即是否为管理员组的成员)?对于访问受限的用户,我需要以不同方式注册一些COM组件.我正在使用C++(WTL和Win32).

c c++ windows winapi

2
推荐指数
2
解决办法
5437
查看次数

创建实现特定接口的 ATL COM 对象

我需要实现一个简单的 ATL COM 对象,该对象实现一个特定的接口,我已为其提供了 .tlb 文件和 .idl 文件。该接口非常简单,仅包含一个方法。我过去创建过许多 ATL 对象,但从未创建过必须实现特定接口的对象。我需要什么才能实现这一目标?我假设我需要在新对象 IDL 中的某处引用接口的 IDL 或 TLB?

欢迎任何指点。

c++ com atl

2
推荐指数
1
解决办法
7621
查看次数

COM对象的动态数组

我有一个ATL COM对象需要公开其他COM对象的集合,因此客户端可以找出集合中有多少对象(通过Count我可以提供的简单属性)并使用其索引访问对象.这个对象集合是动态的 - 计数是不固定的 - 我不知道构造我的主(父)对象时会有多少(所以我不能在我FinalConstruct的例子中创建这些对象).我想要公开的对象只具有只读属性.

我想要做的是std::vector在第一次需要时创建这些对象.我想在可能的情况下使用ATL智能COM指针,所以我不需要手动管理引用计数等,但我不确定我是否应该使用CComPtr'CComQIPtr'等.

假设我想要返回的对象被调用IChild,我希望我能做到这样的事情:

std::vector<CComPtr<IChild> > children;
...
CComPtr<IChild> child;
// Somehow instantiate an IChild?
...
children.push_back(child);

STDMETHODIMP Parent::GetAt(LONG index, IChild** pRet)
{
  *pRet = children[index];
}
Run Code Online (Sandbox Code Playgroud)

如果有人对如何实现这一点有任何指示,我将非常欢迎.有一篇关于暴露静态对象优秀文章,但我找不到任何有关特定问题的信息.

c++ com atl

2
推荐指数
1
解决办法
2923
查看次数

声明并初始化标头中的静态int

如果我在头文件中有以下内容:

foo.h中

Foo
{
public:
  static const int BAR = 1234;
  ...
};
Run Code Online (Sandbox Code Playgroud)

我是否还需要在.cpp中定义变量,例如:

Foo.cpp中

const int Foo::BAR;
Run Code Online (Sandbox Code Playgroud)

我们有一个问题,在标头中初始化静态似乎适用于MS编译器,但在Mac上使用gcc似乎会给链接器错误.

c++

2
推荐指数
1
解决办法
2502
查看次数

实现jQuery单击函数的最佳方法

我有一些动态创建的HTML代码,可能包含许多锚点.我想为每个锚添加一个点击处理程序,我可以想到许多不同的方法,但不知道选择哪一个.假设锚点有一个"myclass"类,点击时执行的代码对每个都是相同的.

方法1

$(document).delegate(".myclass", "click", function() {
  // Do some work
});
Run Code Online (Sandbox Code Playgroud)

方法2:

var $a = $("<a href='#' class='myclass'>Text</a>");
$a.bind("click", function() {
  // Do some work
});
Run Code Online (Sandbox Code Playgroud)

方法3:

function clickHandler() {
  // Do some work
}

var $a = $("<a href='#' class='myclass'>Text</a>");
$a.bind("click", function() {
  clickHandler();
});
Run Code Online (Sandbox Code Playgroud)

我喜欢方法2,因为处理程序代码正好在创建锚点并添加到DOM的地方,但如果我有很多这些锚点,那么JavaScript会有效地创建几十个单独的函数,还是仅仅使用一个函数就足够聪明?

jquery

2
推荐指数
1
解决办法
180
查看次数

标签 统计

c++ ×8

atl ×2

c ×2

com ×2

namespaces ×2

jquery ×1

mfc ×1

svn ×1

typedef ×1

utf-8 ×1

winapi ×1

windows ×1

windows-vista ×1