我想声明我自己的数字类型,就像unsigned int一样,但我不希望隐式转换类型.我首先尝试了这个:typedef unsigned int firstID; typedef unsigned int secondID;
但这并不好,因为这两种类型只是unsigned int的同义词,所以可以自由地互换.
我想这会导致错误:
firstID fid = 0;
secondID sid = fid; // no implicit conversion error
Run Code Online (Sandbox Code Playgroud)
但这没关系:
firstID fid = 0;
secondID sid = static_cast<secondID>(fid); // no error
Run Code Online (Sandbox Code Playgroud)
我的理由是函数参数是强类型的,例如:
void f( firstID, secondID ); // instead of void f(unsigned int, unsigned int)
Run Code Online (Sandbox Code Playgroud)
我在寻找什么机制?
谢谢
硅
我已经设法获得Android Emulator插件设置并使用Jenkins.但是,我的问题是它在3分钟后超时.我只在一个非常慢的nettop Linux盒子(intel atom)上运行它,所以我想它将需要更长的时间来启动模拟器.
有没有办法延长超时?看起来仿真器正在启动; 对于前几次民意调查,它报告为离线,然后没有.
我的控制台输出如下.
谢谢
Started by user Si Pickles
[EnvInject] - Loading node environment variables.
Building in workspace /var/lib/jenkins/jobs/mycompany_myapp/workspace
Updating svn://localhost/mycompany/code/trunk/myappProject at revision '2013-08-11T23:03:06.957 +0100'
At revision 98
no change for svn://localhost/mycompany/code/trunk/myappProject since the previous build
$ /var/lib/jenkins/tools/android-sdk/tools/android list target
[android] Using Android SDK: /var/lib/jenkins/tools/android-sdk
$ /var/lib/jenkins/tools/android-sdk/platform-tools/adb start-server
[android] Starting Android emulator
$ /var/lib/jenkins/tools/android-sdk/tools/emulator -no-boot-anim -ports 48437,50001 -avd google17 -no-snapshot-load -no-snapshot-save -no-window -no-audio
* daemon not running. starting it now on port 51447 *
* daemon …Run Code Online (Sandbox Code Playgroud) 嗨,我已经在Jenkins上设置了我的Android项目来提供CI.它运行良好,在连接的Android手机上运行测试.测试在Android测试框架上运行,扩展了jUnit3.
不幸的是,如果有任何测试失败,则构建被标记为失败.我希望能够通过两种方式改进这一点:
对于第1项,我尝试将其添加到项目build.gradle中:
connectedCheck {
ignoreFailures = true
}
Run Code Online (Sandbox Code Playgroud)
但它没有效果.查看构建日志,我意识到实际的测试任务名为connectedInstrumentTest,但未找到此任务:
connectedInstrumentTest {
ignoreFailures = true
}
Run Code Online (Sandbox Code Playgroud)
原因:
无法在项目':Playtime'上为参数[build_4ldpah0qgf0ukktofecsq41r98 $ _run_closure3 @ 9cd826]找到方法connectedInstrumentTest().
我错过了吗?
谢谢
编辑:继承我的项目build.gradle,没什么特别的:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
testPackageName "com.bb.pt.test"
testInstrumentationRunner "android.test.InstrumentationTestRunner"
}
}
connectedCheck {
ignoreFailures = true
}
Run Code Online (Sandbox Code Playgroud)
我在詹金斯的gradle设置:
switches: --stacktrace --info
tasks: :pt:assembleDebug :pt:assembleTest :pt:connectedCheck
Run Code Online (Sandbox Code Playgroud)
编辑: …
在64位系统上使用32位32位MSVC2008.
我曾经被建议永远不要将windows.h包含为'它真正的怪物,并且会大大减慢我的编译时间'.
我尝试将其删除,显然会出现编译错误.我包括windef.h来定义所有的DWORD等,但我很快就知道还有什么定义来获取编译代码.
我现在得到:
2>c:\program files\microsoft sdks\windows\v7.0\include\winnt.h(6361) : error C2146: syntax error : missing ';' before identifier 'ContextRecord'
2>c:\program files\microsoft sdks\windows\v7.0\include\winnt.h(12983) : error C2065: 'PCONTEXT' : undeclared identifier
Run Code Online (Sandbox Code Playgroud)
谁能在这里建议正确的方法?
谢谢
西蒙
有没有人设法让Jenkins使用Genymotion android VM,而不是超慢的android-emulator?
Genymotion实际上比我的开发机器上的真实设备更快,因此非常适合运行CI测试.
谢谢你的任何想法.
西蒙
对不起,如果这是一个骗局,我无法找到一个非常正确的答案.
我想从基类成员调用一个函数,并让它解析为子类版本.我认为宣布虚拟会做到这一点,但事实并非如此.这是我的方法:
class GUIWindow
{
public:
GUIWindow()
{
SetupCallbacks();
}
virtual void SetupCallbacks()
{
// This function always called
}
};
class GUIListbox : public GUIWindow
{
public:
void SetupCallbacks()
{
// This never called
}
};
GUIListbox lb; // GUIWindow::SetupCallbacks is called :(
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
非常感谢
硅
我知道加载unicode是一个有点劳累的观点,但我看不出如何将呈现给别人的解决方案应用到我的特定问题中.
我有一个Win7/C++/DirectX9 GUI库,可以将文本呈现到屏幕上.我之前从未遇到过任何问题,因为它只能用于西欧语言.现在我必须和匈牙利人一起使用它,这让我很头疼!我特别的问题是加载那种语言中的特殊字符.
举个例子,FELNŐTTEKNEK,意思是ADULT.
如果我将此字符串硬编码到我的应用程序中,它会正确呈现:
guiTitle->SetText( L"FELN?TTEKNEK" );
Run Code Online (Sandbox Code Playgroud)
这将字符串存储为std :: wstring,使用ID3DXFont :: DrawTextW()呈现它.它还证明了我选择的字体Futura CE能够渲染特殊字符(CE =中欧).
到现在为止还挺好.接下来,我只想加载文本文件中的文本.没什么大不了.但结果很糟糕!特殊Ő被另一个字符取代,主要是Å甚至两个字符,如Å(第二个通常是不可打印的)
我确保通过输入文本文件编码为UTF-8并且天真地试图加载它:
wifstream f("data/language.ini");
wstring w;
getline( f, w );
guiTitle->SetText( w );
Run Code Online (Sandbox Code Playgroud)
不知何故,我仍然在争抢它.我加载为UTF-8吗?有没有办法确保这个?我只需要确保我在文本编辑器中显示带有文本的宽字符串.
最感激的任何帮助.
硅
我正在使用原始系统通过将WM_MOUSEMOVE事件直接发送到Flash窗口来控制C++/win32程序中的Flash影片.
它适用于一个轴:
SendMessage( m_targetWindowHWND, WM_MOUSEMOVE, 0, xpos);
Run Code Online (Sandbox Code Playgroud)
但是我想现在发送x和y值.我知道这些包装在WM_MOUSEMOVEs lparam中.在C++中,可以使用MAKEPOINTS或GET_X_LPARAM/GET_Y_LPARAM解压缩.
但是我如何打包x和y,基本上与上面的宏相反.
我猜:
DWORD packed = y << 8 + x;
Run Code Online (Sandbox Code Playgroud)
谢谢
c++ ×5
android ×3
jenkins ×3
build.gradle ×1
genymotion ×1
gradle ×1
include ×1
inheritance ×1
unicode ×1
utf-8 ×1
visual-c++ ×1
winapi ×1
windows ×1
wstring ×1