我创建了一个Azure辅助角色项目。该项目的目标机器必须是x64机器。我应该从worker角色调用Stasm和OpenCV dll。但我认为它们可以在x86机器上编译。 我该怎么办?
答案 0 :(得分:3)
基本上,您尝试在工作者角色中使用本机C ++ DLL,因此从技术上讲,您希望访问工作者角色中的本机模块。我不认为OpenCV x86二进制文件与Worker ole有任何问题而不是本机问题,需要额外的努力。
完全赞同@Sandrino所建议但是想在他的#1)建议中添加内容。当您创建包含使用OpenCV的所有逻辑的本机EXE时,最好直接从ServiceDefinition中的ProgramEntryPoint设置启动,并且您不需要在Worker角色中添加任何代码,除非您有TCP / IP端点并且想在你的应用程序中使用。服务定义如下:
<WorkerRole name="Your_WorkerRole" vmsize="Small">
<Runtime executionContext="limited">
<EntryPoint>
<ProgramEntryPoint commandLine="_your_application_.exe _Parameters_" setReadyOnProcessStart="true" />
</EntryPoint>
</Runtime>
<Endpoints>
<InputEndpoint name="_Your_Endpoint_" protocol="tcp" port="80" />
</Endpoints>
我个人认为上面的第二个选项可能与#1相比有点过分。
答案 1 :(得分:1)
工作者角色过程确实是x64。但这只是针对那个特定的过程。您可以让其他进程与这些x86 dll进行交互: