问题已经解决: 解决方法如下: Option Explicit On Imports EnvDTEPublic Module C_CPPTO_H Sub SourceHeaderJumper() 'splitted file name Dim SArr As System.Array 'new filename generated by macros Dim NewFN As String 'file name base (without extention) Dim FNBase As String 'file extention Dim Ext As String 'simple counter Dim i As Integer If DTE.ActiveDocument() Is Nothing Then Exit Sub End If SArr = DTE.ActiveDocument().Name().Split(".") 'has file extention? If (SArr.GetLength(0) < 2) Then Exit Sub End If 'file name base FNBase = DTE.ActiveDocument().Path() For i = 0 To SArr.GetLength(0) - 2 FNBase = FNBase + SArr(i) + "." Next 'file extention Ext = System.Convert.ToString(SArr(SArr.GetLength(0) - 1)).ToLower() 'business logic If (Ext = "cpp") Or (Ext = "c") Then NewFN = FNBase + "h" Else If Ext = "h" Then NewFN = FNBase + "cpp" If Not System.IO.File.Exists(NewFN) Then NewFN = FNBase + "c" End If End If End If 'if you don't want add file to tabs uncomment next line 'DTE.ActiveDocument().Close() 'opens needed file If System.IO.File.Exists(NewFN) Then DTE.ItemOperations.OpenFile(NewFN) End If End Sub End Module 代码来源:http://www.codeproject.com/useritems/SourceHeaderJumper.asp
解决方法如下:
Option Explicit On
Imports EnvDTEPublic Module C_CPPTO_H
Sub SourceHeaderJumper()
'splitted file name
Dim SArr As System.Array
'new filename generated by macros
Dim NewFN As String
'file name base (without extention)
Dim FNBase As String
'file extention
Dim Ext As String
'simple counter
Dim i As Integer If DTE.ActiveDocument() Is Nothing Then
Exit Sub
End If
SArr = DTE.ActiveDocument().Name().Split(".")
'has file extention?
If (SArr.GetLength(0) < 2) Then
Exit Sub
End If 'file name base
FNBase = DTE.ActiveDocument().Path()
For i = 0 To SArr.GetLength(0) - 2
FNBase = FNBase + SArr(i) + "."
Next 'file extention
Ext = System.Convert.ToString(SArr(SArr.GetLength(0) - 1)).ToLower() 'business logic
If (Ext = "cpp") Or (Ext = "c") Then
NewFN = FNBase + "h"
Else
If Ext = "h" Then
NewFN = FNBase + "cpp"
If Not System.IO.File.Exists(NewFN) Then
NewFN = FNBase + "c"
End If
End If
End If
'if you don't want add file to tabs uncomment next line
'DTE.ActiveDocument().Close() 'opens needed file
If System.IO.File.Exists(NewFN) Then
DTE.ItemOperations.OpenFile(NewFN)
End If
End Sub
End Module
代码来源:http://www.codeproject.com/useritems/SourceHeaderJumper.asp