Inquiridor
Procuro o arquivo coredll.dll

Pergunta
-
Bom dia André,
Estou tentando mudar a data do coletor MC1000 da Motorola, windows CE 4.2 e outro 5.0 mas não estou conseguindo.
Estou utilizando o Visual Studio 2005 - VB.net e pelos código que vi eu não tenho a DLL coredll.dll.
Obrigado
Ernany
Todas as Respostas
-
Ernany,
Qual código você está tentando executar e qual a mensagem de erro que está recebendo?
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima -
Boa tarde Andre, segue abaixo o código:
Imports System.Runtime.InteropServices
Public Class FrmTeste
Private Structure SYSTEMTIME
Public year As Short
Public month As Short
Public dayOfWeek As Short
Public day As Short
Public hour As Short
Public minute As Short
Public second As Short
Public milliseconds As Short
End Structure
<DllImport("coredll.dll")> _
Private Shared Function SetLocalTime(ByVal time As SYSTEMTIME) As Integer
End Function
Private Sub FrmTeste_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ano As Integer= 1901
Dim mes As Integer= 10
Dim diaSemana As Integer= 2
Dim dia As Integer= 9
Dim hora As Integer= 9
Dim minuto As Integer= 1
Dim segundo As Integer= 2
Dim milisegundo As Integer= 3
Dim st As SYSTEMTIME
TxtData.Text = DateTime.Now
st.year = ano 'Year
st.month = mes 'Month
st.dayOfWeek = diaSemana 'DayOfWeek
st.day = dia ' .Day
st.hour = hora '.Hour
st.minute = minuto '.Minute
st.second = segundo '.Second
st.milliseconds = milisegundo '.Millisecond
SetLocalTime(st) 'trava AQUI, quando chama a função.
TxtData.Text = DateTime.Now
GC.Collect()
End Sub
************************
Segue erro abaixo
Error
ExceptionCode: 0x80000002
ExceeptioAddress: 0x03f96434
**************************
rrrr -
-
Ernany,
Mas o próprio coletor com WCE 5 já era para ter a dll... Você tem mais informações sobre o erro (mensagem, e não código do erro)?
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima -
Boa noite André,
Já olhei em cada diretório do coletor e não tem essa dll. Será que não é outra ou tem outra forma?
Tentei uma que encontrei,mscoree.dll, mas não funcionou.
"Can't find an Entry Point 'SetLocalTime' in a PInvoke DLL 'mscoree.dll'."
Alguma idéia?
Obrigado,
Ernany
-
Estranho hein...
No emulador de smart device funciona normalmente (inclusive já escrevi um exemplo sobre esse mesmo assunto aqui: http://andrealveslima.spaces.live.com/blog/cns!3E33BD927B1E5D27!3311.entry)
Tenta utilizar a kernel32.dll pra ver se funciona...
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima- Editado AndreAlvesLimaModerator sábado, 28 de agosto de 2010 13:32 parenteses faltando
-
Boa noite André,
Foi através desse exemplo seu que cheguei até você. Não existe o arquivo "kernel32.dll"
no coletor. Tem como você me enviar os arquivos: "kernel32.dll" e oredll.dll" para eu
testar. Com certeza são outras DLL's que são usados nesse coletor. Sistema Windows CE 4.2.
Obrigado,
Ernany
ernany03 arroba hotmail.com
-
-
Ernany,
Tente dar uma olhada nas subpastas de:
C:\Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima -
Saudações amigo
Eu utilizei o seguinte código e funciona:
Veja se te ajuda.
A parte em que chamo kernel é só teste.
public struct SystemTime { public ushort Year; public ushort Month; public ushort DayOfWeek; public ushort Day; public ushort Hour; public ushort Minute; public ushort Second; public ushort Millisecond; }; public class DateTimeUtils { [DllImport("kernel32.dll", EntryPoint = "GetSystemTime", SetLastError = true)] public extern static void Win32GetSystemTime(ref SystemTime st); [DllImport("coredll.dll", EntryPoint = "GetSystemTime", SetLastError = true)] public extern static void WinCEGetSystemTime(ref SystemTime st); [DllImport("kernel32.dll", EntryPoint = "SetSystemTime", SetLastError = true)] public extern static bool Win32SetSystemTime(ref SystemTime st); [DllImport("coredll.dll", EntryPoint = "SetSystemTime", SetLastError = true)] public extern static bool WinCESetSystemTime(ref SystemTime st); public static void SetDateTime(DateTime data) { SystemTime st = new SystemTime(); DateTime value = data.ToUniversalTime(); st.Year = (ushort)value.Year; st.Month = (ushort)value.Month; st.Day = (ushort)value.Day; st.DayOfWeek = (ushort)value.DayOfWeek; st.Hour = (ushort)value.Hour;//((value.Hour + 1) % 24); st.Minute = (ushort)value.Minute; st.Second = 00; st.Millisecond = (ushort)value.Millisecond; bool result = WinCESetSystemTime(ref st); if (true != result) { int error = Marshal.GetLastWin32Error(); throw new Exception("Ocorreu um erro : " + error); } }
Desenvolva!!! -
Rodrigo,
O código dele já estava certo... O problema é que ele não está conseguindo achar a coredll.dll nem a kernel.dll no dispositivo dele... Aí está lançando uma exception, obviamente...
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima -