2012-08-06 94 views
0

对不起,如果此问题之前已被询问过,但在此处找不到合适的答案。 我需要Visual Studio正则表达式的一些帮助来修改源代码。 我有从文件加载纹理的源代码。我有很多这样的线。Visual Studio正则表达式替换

D3DXCreateTextureFromFileA(pDevice , chFileName , &pTexture) ; 
D3DXCreateTextureFromFileA(pDevice , pAttrib->Value() , &pd3dTexture) ; 

我需要定义一个常量并基于该常量从自定义格式加载纹理。 我想这

D3DXCreateTextureFromFileA(pDevice , chFileName , &pTexture) ; 

成为这个

#ifdef LOAD_TEXTURES_FROM_CF 

    CreateTextureFromResourceFile((pDevice , chFileName , &pTexture) ; 

#else 

    D3DXCreateTextureFromFileA(pDevice , chFileName , &pTexture) ; 

#endif 

我如何与Visual Studio的正则表达式实现这一目标? 预先感谢您。

+0

为什么你不想要宏观解决方案?它适用于你的情况 – SingerOfTheFall 2012-08-06 08:41:22

回答

2

有没有必要正则表达式替换(我甚至会建议不这样做)。而不是重复你的新代码,只需创建另一个宏:

#ifdef LOAD_TEXTURES_FROM_CF 
#define CreateTextureFromFile(a, b, c) CreateTextureFromResourceFile((a), (b), (c)) 
#else 
#define CreateTextureFromFile(a, b, c) D3DXCreateTextureFromFileA((a), (b), (c)) 
#endif 

然后,只需更换的D3DXCreateTextureFromFileA所有以前occurances与CreateTextureFromFile,你应该罚款。

+1

只需添加:我实际上会考虑使用小封装函数而不是静态代码/宏。这样你甚至可以在运行时切换加载,而不仅仅是编译时间。 – Mario 2012-08-06 08:46:22

+0

谢谢你们俩。我将按照您的建议使用宏。 出于好奇 - 正则表达式的解决方案将如何? – user1578544 2012-08-06 08:49:56