我想尝试编写和编译iOS和Android设备的C++代码.我已经使用XCode一段时间了(我正在为MacOS和Windows编写c ++代码).所以我想将XCode用于我的目的.
问题是我不知道如何为Android设备和iPad/IPhone编译C++代码.我想在iOS和Android上使用crossplatform-solution,但不想使用Marmalade(c ++)或其他类似的框架.
这是真的吗?:)是否有教程或其他有用的材料?
我正在使用C++(而不是C++ 11).我需要在类中创建一个指向函数的指针.我尝试做以下事情:
void MyClass::buttonClickedEvent( int buttonId ) {
// I need to have an access to all members of MyClass's class
}
void MyClass::setEvent() {
void ( *func ) ( int );
func = buttonClickedEvent; // <-- Reference to non static member function must be called
}
setEvent();
Run Code Online (Sandbox Code Playgroud)
但是有一个错误:"必须调用非静态成员函数的引用".如何制作指向MyClass成员的指针?
我将文本复制到剪贴板时遇到问题.我尝试像这样复制:
android.content.ClipboardManager clipboard = ( android.content.ClipboardManager ) getSystemService(Context.CLIPBOARD_SERVICE );
android.content.ClipData clip = android.content.ClipData.newPlainText( "text label", "text to clip" );
clipboard.setPrimaryClip( clip );
Run Code Online (Sandbox Code Playgroud)
但问题出在编译器抛出:
Call requires API level 11 (current min is 7): android.content.ClipboardManager#setPrimaryClip line 245 Android Lint Problem.
Run Code Online (Sandbox Code Playgroud)
如何在android API <11上将文本复制到剪贴板?如果我在复制前尝试检查android的API版本 - 我的代码甚至无法编译.也许有人知道这个问题的答案?
这是我的Clang编译器中非常奇怪的行为.我使用Xcode(OS X),所有都是最新的.为什么我会在这个简单的代码中收到此警告?如果我删除这两行警告隐藏.
ld:警告:在_main中直接访问全局弱符号std :: __ 1 :: char_traits :: eq(char,char)表示在运行时无法覆盖弱符号.这可能是由使用不同可见性设置编译的不同翻译单元引起的.
int main( int argc, char* argv[] ) {
std::string file = "test";
size_t pos = file.find( "a" );
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我需要创建一个带有两个表单小部件的简单布局(例如 - 两个按钮).第一个必须填充父布局的所有可用宽度,第二个必须具有一些固定大小.
这就是我需要的: 
如果我将FILL_PARENT设置为第一个小部件 - 我没有看到第二个小部件.它只是从布局的视图区域吹走:)我不知道如何解决这个问题...
我尝试执行以下命令:
$ convert 1.png -filter 'Jinc ( +clone -negate -morphology Distance Euclidean -level 50%,-50% )' -morphology Distance Euclidean -compose Plus -composite -level 43%,57% -resize 12.5% 1.png
Run Code Online (Sandbox Code Playgroud)
它给了我:
转换:没有定义图像`1.png'@error/convert.c/ConvertImageCommand/3187。
但它是存在的!我尝试在启用调试选项的情况下执行该命令:
$convert 1.png -filter 'Jinc ( +clone -negate -morphology Distance Euclidean -level 50%,-50% )' -morphology Distance Euclidean -compose Plus -composite -level 43%,57% -resize 12.5% 1.png -debug all
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:http : //pastebin.com/gsw7KszH
我的 ImageMagick 的配置有什么问题?我使用最新的 macOS。
我有以下代码的问题:
const std::vector < std::string > arr1 = { "a", "b", "c" };
const std::vector < std::string > arr2 = { "e", "f", "g" };
const std::vector < std::string > globaArr = { arr1, arr2 }; // error
Run Code Online (Sandbox Code Playgroud)
我需要用值来初始化globalArr:"a","b","c","e","f","g"(在一个维度上).我不需要二维数组.我做错了什么?
我可以这样做:
globalArr.push_back( arr1 ); // with the for loop inserting each value of arr1
globalArr.push_back( arr2 );
Run Code Online (Sandbox Code Playgroud)
但是这里的globalArr不再是const :)我需要所有三个向量的相同类型.
需要将数组从 unsigned char* 安全地转换为 char*。我这样做。正确与否?
std::vector < unsigned char > arr;
char *imgData = (char*) malloc( arr.size() );
for ( int i = 0; i < arr.size(); i++ ) imgData[ i ] = ( arr.at( i ) - 128 );
Run Code Online (Sandbox Code Playgroud) 我正在使用 TriangleList 输出我的图元。大多数时候我需要绘制矩形、三角形、圆形。有时我需要绘制非常细的三角形(例如宽度= 2px)。我认为它应该看起来像一条线(几乎是一条线)但它看起来像单独的点:)
下图显示了我在说什么:

左侧的第一张图片显示了如何绘制矩形(逆时针,从右上角)。然后你可以看到我称之为“dx”的矩形的“宽度”。
如何避免这种行为?我希望它看起来像一条直线(几乎是直线),而不是点:)
如何使用 just_audio 合并(而不是连接)两个音频文件以便同时播放?
我想合并它以避免同时播放 just_audio 实例的硬件限制。仅使用 just_audio 的一个实例进行播放。