2013-03-05 2 views
0

우리는 프레임 워크 2.0과 함께 VS 2005를 사용하여 하나의 Windows 응용 프로그램을 개발했습니다. 이 응용 프로그램은 32 비트 운영 체제에서 완벽하게 실행됩니다. 이제 64 비트 OS에 대한 지원을 제공해야합니다.64 비트 OS에서 "클래스가 등록되지 않았습니다 (HRESULT 예외 : 0x80040154 (REGDB_E_CLASSNOTREG))"

64 비트 운영 체제에서 작동하는 동안 아래 오류 메시지가 표시됩니다.

"클래스가 등록되지 않았습니다 (HRESULT에서 예외 : 0x80040154 (REGDB_E_CLASSNOTREG))". 다음

try 블록에 문제를 가져 오기 코드 블록

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Driver));  
this.axDriver = new AxCCNAccess.AxDriver();  
((System.ComponentModel.ISupportInitialize)(axDriver)).BeginInit();  
SuspendLayout();  
//  
// axDriver  
//  
axDriver .Enabled = true; 
axDriver .Location = new System.Drawing.Point(241, 211); 
axDriver .Name = "axDriver ";  
axDriver .OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axDriver .OcxState")));  
axDriver .Size = new System.Drawing.Size(41, 42);  
axDriver .TabIndex = 0;  
//  
// Driver  
//  
AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);  
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;  
ClientSize = new System.Drawing.Size(292, 266);  
Controls.Add(axDriver); 
Name = "DriverContainer"; 
Text = "DriverContainer";  
try  
{ 
((System.ComponentModel.ISupportInitialize)(axDriver)).EndInit(); 
}  
catch (Exception ex) 
{ 
string sss = ex.Message; 
} 
ResumeLayout(false); 

입니다.

+0

64 비트 응용 프로그램에 32 비트 ocx를 포함하려고합니다. 64 비트 OS에서 32 비트 응용 프로그램으로 실행하도록 설정하면 응용 프로그램이 잘 실행됩니다 ... 프로젝트 속성 -> 빌드 -> Platform Target = x86 –

답변

0

i가 제거되는 OCX 한 소프트웨어를 제거하기 때문에, 이것은 당신 측의 문제라고 생각합니다, 그 때까지 또 다른 하나의 소프트웨어 내가

RICHTX32.OCX를 등록하거나 그 후에 제대로 작동하지 않았다 RICHTX64.ocx

(시스템 비트 버전 32 또는 64) 이제 제대로 작동합니다. 나는 그것이 도움이 될 것이라고 생각한다.

관련 문제