2017-08-28 3 views
0

私はAzure IoTハブC sdkからiothub_client/samples/iothub_client_sample_upload_to_blobを試しています。低レベルのAPIを使用すると、コンパイルされ正常に動作します。 しかし、すぐに私は利便性層に切り替えて(アプリケーションのファイルのドキュメントが示唆するように)、私はエラーを取得:Azure IoT hub C低レベルAPIなしでsdk blobアップロードの例が可能ですか?

/home/user/workspaceMisc/azure-iot-sdk-c/iothub_client/samples/iothub_client_sample_upload_to_blob/iothub_client_sample_upload_to_blob.c: In function ‘iothub_client_sample_upload_to_blob_run’: 
/home/user/workspaceMisc/azure-iot-sdk-c/iothub_client/samples/iothub_client_sample_upload_to_blob/iothub_client_sample_upload_to_blob.c:77:25: error: implicit declaration of function ‘IoTHubClient_UploadToBlob’ [-Werror=implicit-function-declaration] 
        if (IoTHubClient_UploadToBlob(iotHubClientHandle, "subdir/hello_world.txt", (const unsigned char*)HELLO_WORLD, sizeof(HELLO_WORLD) - 1) != IOTHUB_CLIENT_OK) 
         ^
cc1: all warnings being treated as errors 
iothub_client/samples/iothub_client_sample_upload_to_blob/CMakeFiles/iothub_client_sample_upload_to_blob.dir/build.make:62: recipe for target 'iothub_client/samples/iothub_client_sample_upload_to_blob/CMakeFiles/iothub_client_sample_upload_to_blob.dir/iothub_client_sample_upload_to_blob.c.o' failed 

どのようにして利便性層の代わりに、低レベル層を使用してファイルをアップロードすることができます?まったく可能ですか?

私は、Ubuntu 16.04、gcc 5.4.0、およびSDKの最新のクローンを使用しています。

答えて

0

実際には関数名はIoTHubClient_UploadToBlobAsyncです。非同期ポストフィックスを追加する必要があります。追加の2つのパラメータ、すなわちiotHubClientFileUploadCallbackcontextが必要です。 This documentはやや誤解を招くことがあります。

IoTHubClient_UploadToBlobAsync(iotHubClientHandle, "subdir/hello_world.txt", (const unsigned char*)HELLO_WORLD, sizeof(HELLO_WORLD) - 1, NULL, NULL); 
+0

おかげで、働いていた:

ですから、このように、この関数を呼び出すことができます。もう問題はない! – StrawHat

関連する問題