小编New*_*oid的帖子

无法通过Android应用程序访问Facebook好友

我通过我的Android应用程序访问图形API时遇到问题,该应用程序将用户的朋友检索为JSONObject,提取其名称并在屏幕上显示它们.它应该是一个简单而直接的任务,但显然它不是.当我在Android Nexus I上运行我的应用程序时,我登录到Facebook,然后我被要求单击"允许"按钮授予权限,我被重定向到空白页面.我期待看到我的朋友的名字,但它不会发生.有人可以帮助我.

public class Login extends Activity 
{
    Facebook mFacebook = new Facebook("201509899926116");
    AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(mFacebook);
    String FILENAME = "AndroidSSO_data";
    private SharedPreferences mPrefs;
    View linearLayout;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        linearLayout = findViewById(R.id.main_layout);

         /* Get existing access_token if any */
        mPrefs = getPreferences(MODE_PRIVATE);
        String access_token = mPrefs.getString("access_token", null);
        long expires = mPrefs.getLong("access_expires", 0);

        if(access_token != null)
        {
            mFacebook.setAccessToken(access_token);
        }
        if(expires != 0)
        {
            mFacebook.setAccessExpires(expires);
        }

        /* Only call authorize if the access_token has expired. …
Run Code Online (Sandbox Code Playgroud)

android facebook-android-sdk

6
推荐指数
1
解决办法
1295
查看次数

MPI_Comm_Create挂起而没有响应

我希望多播到不超过4台计算机的组中,MPI_bcast是否仍比多个单播节省大量时间(请注意我的组很小)?

给定机器的数量和这些机器的等级,我编写了以下函数来创建新的通信器。

void createCommunicator(MPI_Comm *NGBRS_WORLD, int num_ngbrs, int *ngbrs_ranks)
{
        MPI_Group NGBRS_GROUP, MPI_COMM_GROUP;

        int ret = MPI_Comm_group(MPI_COMM_WORLD, &MPI_COMM_GROUP);
        printf("RETURNED %d\n", ret);

        ret = MPI_Group_incl(MPI_COMM_GROUP, num_ngbrs, ngbrs_ranks, &NGBRS_GROUP);
        printf("RETURNED %d\n", ret);

        ret = MPI_Comm_create(MPI_COMM_WORLD, NGBRS_GROUP, NGBRS_WORLD);
        printf("RETURNED : %d\n", ret);
}
Run Code Online (Sandbox Code Playgroud)

当我调用此函数时,输出为:

RETURNED 0
RETURNED 0
Run Code Online (Sandbox Code Playgroud)

该程序只是挂在MPI_Comm_create

关于可能出什么问题或如何调试问题的任何想法?请注意,我已将ngbrs_ranks动态分配为num_ngbrs大小。

debugging mpi mpich

5
推荐指数
0
解决办法
372
查看次数

套接字编程:recv()

我有一个应用程序,其中各种实体通过套接字相互通信,我正在使用C编程语言.当实体向另一个实体发送长消息时,recv()函数可能会部分地读取此消息.因此,我必须通过附加所有收到的部分在接收方重新构建消息.

我的问题是与recv()相关的一般套接字编程问题.recv()如何知道消息何时被完全读取?我应该使用"\n"这样的特殊字符终止消息吗?或者我应该将邮件的大小作为标题发送?常见的做法是什么?

c sockets

4
推荐指数
1
解决办法
833
查看次数

tbb并发哈希映射查找和插入

我目前正在使用tbb的并发哈希映射来执行并发插入哈希映射.每个键都是一个字符串,值是整数的向量.我想实现以下内容:在插入期间,如果密钥不存在,我插入它并将值添加到其向量.如果存在,我只需将值添加到其向量中.

在检查tbb并发哈希映射API之后,我注意到find和insert函数都只返回布尔值.那么如果它存在,如何返回指向键的指针呢?

c++ tbb concurrenthashmap

4
推荐指数
1
解决办法
5456
查看次数

Tbb并发哈希映射迭代器

我正在使用迭代器遍历整个tbb并发哈希映射并检查每个(键,值)对.

for (MAP::pair = myHashTable.begin(); myHashTable.end(); pair++)
Run Code Online (Sandbox Code Playgroud)

如何并行化这个迭代器?

c++ parallel-processing multithreading tbb

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

编译和链接C和C++文件

我想从C文件中调用C++函数,我已经阅读了有关extern"C"构造和包装器API的内容.但是,我不确定如何组织各种头文件以及如何链接目标文件.

假设我有一个C文件MyProg.c及其相应的头文件MyProg.h.

现在,我创建了两个文件Wrapper.cppWrapper.h,它们声明了我想从MyProg.c调用的函数.

// Wrapper.h
#include "Utility.h"

#ifdef __cplusplus
extern "C" {
#endif

void func_to_invoke();

#ifdef __cplusplus
     }
#endif
Run Code Online (Sandbox Code Playgroud)

请注意,Wrapper.h包含一个包含其他实用程序C++函数的文件.

问题是如何编译和链接文件.我应该做以下事情:

g++ -c Utility.cpp Utility.h
g++ -c Wrapper.cpp Wrapper.h Utility.h
gcc -c MyProg.c MyProg.h Wrapper.h

gcc MyProg.o Wrapper.o
Run Code Online (Sandbox Code Playgroud)

编辑:

我试过以下,我仍然无法编译.我有与C++库相关的页面和错误页面.我是否还应该在__cplusplus宏中声明Utility.h中的所有函数?

g++ -c Utility.cpp
g++ -c Wrapper.cpp 
gcc -c MyProg.c 
g++ MyProg.o Wrapper.o Utility.
Run Code Online (Sandbox Code Playgroud)

解:

必须从Wrapper.h中删除Utility.h并将其包含在Wrapper.cpp中

c c++ compilation

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

使用带有char*键的boost_unordered_hash_map

我有混合的C和C++文件,它们共同构成了我的程序.我正在使用boost无序哈希映射,我最初定义为:

typedef boost::unordered_map<char *, int> my_map;
Run Code Online (Sandbox Code Playgroud)

然而,地图表现得很奇怪; find(key)找不到哈希映射中实际存在的键.然后,我将定义更改为:

typedef boost::unordered_map<std::string, int> my_map;
Run Code Online (Sandbox Code Playgroud)

现在哈希映射工作正常.然而,为了使用地图,我将char*转换为std :: string是不方便的.有没有办法让第一个定义有效?

c++ boost hashmap

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

从命令行运行Java程序

我下载了一个java程序,它包含两个文件夹src和分别包含源文件和类文件的类.现在,src和classes文件夹包含几个嵌套的子文件夹,其中最后一个子文件夹分别包含源文件和类文件.更确切地说,源文件和类文件的路径是src/edu/univ/.java和classes/edu/univ/.class.鉴于包含main函数的文件是Main.java,如何从命令行运行该程序.

我试过了:

 java  src/edu/univ/Main but I get Exception in thread "main" java.lang.NoClassDefFoundError: src/edu/univ/Main
Run Code Online (Sandbox Code Playgroud)

我也尝试过:java src.edu.univ.Main但我遇到了类似的错误

java

0
推荐指数
1
解决办法
255
查看次数

左移计数> =类型的宽度

我知道这个先前已经被问过堆栈溢出的东西,但我已经尝试了所有建议作为解决方案,但没有任何作用.我的问题很简单,我正在尝试定义一个unsigned long,它必须采用允许的最大可能值.

#define SIZEOF_ULONG (sizeof(long) * 8);
#define LARGEST_VALUE (1ULL << ((SIZEOF_ULONG)-1));
Run Code Online (Sandbox Code Playgroud)

其中ulong的typedef为无符号长.我收到一个警告,左移计数> =类型的宽度.我在我的64位机器上检查了unsigned long的大小,它是8B.最后,我尝试使用-m64标志进行编译,但都是徒劳的.

有任何想法吗?

c c++ g++ bit-shift

0
推荐指数
1
解决办法
1249
查看次数