我在VS2013中有一个C++项目.在过去的类似项目中,我使用SubWCRev和Subversion来自动生成版本号.我有一个这样的模板文件:
#define MAJOR_VERSION 2
#define MINOR_VERSION 2
#define MICRO_VERSION 0
#define BUILD_VERSION $WCMODS?$WCREV$+1:$WCREV$$
#define QUOTE_(x) #x
#define QUOTE(x) QUOTE_(x)
#define BUILD_VERSION_STRING QUOTE(MAJOR_VERSION.MINOR_VERSION.MICRO_VERSION.BUILD_VERSION)
Run Code Online (Sandbox Code Playgroud)
然后我运行SubWCRev作为预构建步骤来生成我在项目中包含的头文件以定义版本号.
我现在正在使用Git,并希望做类似的事情.我知道Git没有相应的修订号,但HEAD SHA会没问题.
似乎没有一种与Git相同的方法,我需要做一些不是我强项的脚本.Git Guru可以指出我正确的方向来实现这一目标吗?
我目前正在开发一个跨平台的应用程序(Win/OSX/iOS),它有一个C++(带有Boost)后端.在iOS和OSX上,我使用Cocoa Net服务浏览器委托功能通过mDNS发现嵌入式设备,然后将信息传递到后端以创建与之通信所需的对象.
我想对我的Windows MFC前端采取类似的方法,我发现这篇文章看起来完全符合我的要求.然而,似乎使用Bonjour SDK有一些非常讨厌的副作用 - 强迫你到MFC的静态链接,在我的情况下,我可以让它正确链接的唯一方法是根本不使用调试DLL,这是不理想的.
所以,Bonjour SDK对我来说并没有什么好处,因为它对我的项目施加了太多限制.使用Cocoa,我实际上只使用了很少的功能 - 实际上只有didFindService和netServiceDidResolveAddress.我想要做的就是找到给定类型的设备并获取其IP地址.
任何人都可以建议另一种解决方案,这将与Windows上的MFC前端一起使用吗?
我正在尝试让应用程序在横向模式下工作,我几乎已经完成了,但由于某种原因,我视图上的按钮不起作用(即它们没有按下)。我正在使用一个根视图控制器,它按如下方式加载初始视图控制器:
- (void)viewDidLoad
{
[super viewDidLoad];
StartViewController *viewController = [[StartViewController alloc] initWithNibName:@"StartView" bundle:nil];
self.startViewController = viewController;
startViewController.delegate = self;
[viewController release];
[self.view addSubview:startViewController.view];
}
Run Code Online (Sandbox Code Playgroud)
我还在我的 Info.plist 文件中设置了 Initial Interface Orientation 值,并在我的根视图控制器中覆盖了以下内容:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return((interfaceOrientation == UIInterfaceOrientationLandscapeRight) ||
(interfaceOrientation == UIInterfaceOrientationLandscapeLeft));
//return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
Run Code Online (Sandbox Code Playgroud)
视图可以正常加载并以横向模式填充屏幕,但由于某种原因,我无法按下视图上的任何按钮。
我确信这与我使用根视图控制器有关的事情很简单,因为我之前已经设法使用只有一个视图控制器的应用程序使其正常工作。
有人可以帮我吗?