该文件* .cpp中是什么代码。#define mdTyVzgFy4_0UFy9GimmM

时间:2019-04-16 15:24:26

标签: c++

我刚刚从一个名为aruco的库中下载了一个开放源代码,用于用C ++编写的QR码检测。在检查代码时,我发现了一些看起来不像c ++的文件。 谁能理解那是什么类型的代码?看起来像那样

#define  mUXyv8dbk5ppT_acPhWw1  mFzTZaNOrvPJ32i9gU3Wr9J28M8DBzQ(a,:,[,+,c,+,:,^,Z,Z,/,-,r,O,[,;,9,e,;,P)
#define  mmdgJNaGE2dbCM6TccQ56  mkzSZJDew824aa0gKauM6fZ2VRvPUyZ(^,Q,5,r,j,P,t,B,c,;,T,A,o,W,},u,*,e,7,/)
#define  mVBw_rTkATYMOTRmsNe_B  mGJoExPsp9LQpgvTNdOhH4AqaFjFPrq(+,W,4,t,i,o,d,2,e,P,1,A,:,a,E,S,v,F,Y,V)
#define  mH9xkXr1In9WhMDYLLAkQ  mhN2hPhnFFq5alNSwVOjtfx8xECWu2g(R,r,R,z,t,2,i,b,!,k,S,n,e,C,k,K,5,o,K,a)
#define  mSye5PefiM2uFq__QqZRQ  m_dk3EP_dRaChCeAYkjUT4mGB6eHLjG(s,Y,^,r,*,P,D,X,y,^,b,},k,4,a,=,i,X,!,v)
#define  mJpQJFURUc57_1UwCTPvr  mByXC_NAGVGzCcmUEv_c9mAYK8t5jBN(t,R,.,>,!,i,W,0,R,C,*,Y,A,>,K,h,T,-,*,8)
#define  my9E4sAt6II28meWefBqO  mu1aRcYPGwwmkdvLrXjWyYkshrNbQfZ(8,N,+,t,},r,I,T,=,C,*,h,!,m,{,/,D,y,_,T)
#define  mRtPBvwiZzHWglctKPmaF  msiqIfe8Aci2FIHOTIR3qsdKyqc9jUO(7,i,j,^,_,^,6,},I,<,E,-,/,d,j,=,:,N,+,s)
#endif

#ifndef _ARUCO_MarkerDetector_Impl_H
#define _ARUCO_MarkerDetector_Impl_H
#include "aruco_export.h"
#include "markerdetector.h"
#include <opencv2/imgproc/imgproc.hpp>
 mH83V9yQZ4TlJHtn2Baef   
    aruco
 mBduW7dqSuFrUAvwh7kHo   

 mTj14DRd7xgEPvsp5xhPs   





     CameraParameters mVlbuMLWi_vwpED0hDKIw      



 mrJuVHPe96ExiggCdsmDG   

   MarkerLabeler mv0LWHXRSvGJF76ckeLfO   



 mPXYuzTL9RZjjZA9XYUV9   
     MarkerDetector_Impl
 mYwjl00gOK3Vja3UkLMIP   


    friend  mukY8albO2VdJSsWPXwW4    

 MarkerDetector mD07x3flmZMPVC6kwqG6P    



public:

       MarkerDetector_Impl mnODdIJiXbJxgUNOnnK7Q     


   mYCDBBfn03HaGvoHBxAMq     


       MarkerDetector_Impl mK8B3zN6mQAB0xYXFlxGO     



    int dict_type,  mYJJZNT6RsQUQcGvcjw6s    

               error_correction_rate  mRUhvrauugCIk8ZFUtFF5      
           0 mswZzmsb_awITT3YY34kR

2 个答案:

答案 0 :(得分:1)

  

该文件* .cpp中是什么代码。#define mdTyVzgFy4_0UFy9GimmM

#define mdTyVzgFy4_0UFy9GimmM是定义宏的预处理程序指令。宏用于在预处理期间替换文本。

  

有人会明白那是什么代码吗?

可能没有人能理解。也许这就是为什么要这样做的原因:似乎是在混淆源代码。

您可以使用预处理器生成处理后的代码,以查看编译器看到的内容。例如,gcc -E。请注意,预处理器将扩展include指令,因此您需要先滚动到包含的文件。

答案 1 :(得分:1)

  

有人会明白那是什么代码吗?

是的!哇,这很有趣。那确实是一个模糊的源代码。 它仍然是C / C ++。它正在使用预处理程序定义。基本上,它是可以多次使用的密钥。 (如变量)。

编译器将搜索所有预处理器定义,并用实际文本替换

我想您想对它进行模糊处理以便在源代码中更仔细地了解。

对于gccclang,您可以使用-E选项(请参见类似答案)来输出预处理器输出,而无需进行编译。

要在示例输出中也显示注释,可以添加-CC-P标志:

  

clang ++ -E -CC -P fileA.cpp

     

-E的所有处理器选项都可以在以下位置找到:   gcc.gnu.org。

     

-CC不要丢弃注释,包括在宏扩展期间。就像-C一样,除了宏中包含的注释也被传递   到扩展宏的输出文件。

     

-P禁止在预处理器的输出中生成线标记。在运行预处理器时,这可能会很有用   不是C代码的东西,将被发送到程序   可能会被线标混淆。

对于Visual C ++编译器,可以使用/E