将C++代码手工移植为JAVA代码 是不是纯扯淡?

我现在手头有一份基于MFC架构的C++项目。

目标是:把部分功能代码移植到安卓上。

目前进展:

注:非指针类型的数据的迁移十分简单,不赘述。

  1.    struct 类型内成员变量指针。

   例子:struct Node
    {		
        /// it seems that the member order should be placed according to access frequency
	    NLinkFlowType	m_nCap[NeighborhoodSize];		        
		
        TLinkFlowType	m_tCap; // if m_tCap > 0, then residual capacity of edge source->node is m_tCap
							    // if m_tCap < 0, then residual capacity of edge node->sink is -m_tCap        		        	        


        unsigned int    m_ts;   /// time stamp
        unsigned int    m_dist; /// distance to the terminal


        unsigned int    m_parent : 4;
	    unsigned int   	m_tree : 1; // 0 = source, 1 = sink (if parent!=PARENT_FREE)
        
        unsigned int    m_isDumb: 1;    /// whether participating in the maxflow


        Node*			m_next; // queue of active nodes               


        NLinkFlowType   m_nCapOld[3];    /// for recording the capacity in the modified residual graph               


        NLinkFlowType   m_nCapSub[3];   /// for sub-division    
    };  /// struct Node 
              方案:将struct类型转换为class类型。其中的C++的指针队列部分就忽略掉。

   2.    类中成员变量&函数中成员变量指针

               方案:转换为class类型。 

   3.    函数指针 

                例子:typedef bool (*ProgressCallback)( int numSoFar, void* callbackData );

                方案:目前无。求指教。

   4.    形式参数& 函数返回值

                例子: Node* GetNeib(Node* p, int e)
{
return (Node*)((char*)p + m_nodeShifts[e]);
}

                 方案: 转换为class类型。 

               

    5. void指针

                例子:

                

           void* callbackData

   GridGraph8::GridGraph8(int sizeX, int sizeY, ProgressCallback abortCallback, void* callbackData)
                  : m_nodes(NULL),
                         m_pAuxNodeInfo(NULL), 
                         m_threadsNum(1), 
                         m_abortCallback(abortCallback),
                         m_callbackData(callbackData)
{
Allocate(sizeX, sizeY); 
}

              方案:目前无。求指教。

               


我看网上有说JAVA中用JNI调用C++之类。但是我自己没有做过。不敢尝试,时间也不那么允许。好久没有给导师提交阶段进展报告了。



你可能感兴趣的:(C++代码迁移为Java)