- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
A number of my applications use the XEffort set of libraries to interface to the Windows API.
A number of my clients have migrated to 64-bit MS Office, and so I need to start migrating to x64.
I gather that XEffort is only available for Win32, or has anyone ported it to x64?
If not, it looks like a long road ahead ...
Thanks,
David
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm not aware of an x64 port. Since I'm now hosting Xeffort it's on my list, but I don't see having the time to do it for a while.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, Steve.
While some of my apps use dialogs extensively, it looks like my immediate need is to read some registry strings and upper/lower case conversion. I can write my own case conversion routines, but are there any alternatives to XEffort for accessing Registry, for both Win32 and x64?
Thanks,
David
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There are registry interfaces in ifwin ( advapi32). I found an very old application that I had an example of some usage, I don't know if this still works ok on w7 or x64 and it looks like some update is required but for what its worth....
subroutine regtest() integer*4 mode,ll,ierr,valLen character*256 skey,valdata,valname mode=1 skey='SOFTWARE\\xxxxxxx\\yyyyyyyy\\& &Pages\\uuuuuu\\zzzzzzzzz'C valname='C:\\WINDOWS\\system32\\yyyyyy.DLL'C call ReadRegVar(skey,valData,valname,mode,ll,ierr) skey='SOFTWARE\\zzzz\\yyyyyyy\\& &Pages\\VERCP32\\tt0'C valName='Test'C; valData='hurrah'C; valLen=6 call WriteRegVar(skey,valData,valname,valLen,ierr) return end subroutine ReadRegVar(skey,valData,valname,mode,ll,ierr) use ifwin implicit none character*(*),intent(inout)::skey character*(*),intent(inout)::valdata character*(*),intent(inout)::valname integer*4, intent(inout):: mode integer*4, intent(out):: ll integer*4, intent(out):: ierr character*255 subKey, vname, strx integer*4 regCallStat, mainKey, hKey, l1, l2 ierr = 0 if (mode .eq. 1) then mainKey= HKEY_LOCAL_MACHINE else ierr = -2; return endif subkey = skey regCallStat=RegOpenKeyEx(mainKey,subKey,0, KEY_QUERY_VALUE,loc(hKey)) if (regCallStat .ne. 0) then ierr = regCallStat; return endif vname = valname ! value name l1 = 0; l2 = 256 regCallStat = RegQueryValueEx (hKey, vname, 0, loc(l1),loc(strx),loc(l2)) if (regCallStat .ne. 0) then ierr = regCallStat; return endif ll = l2 - 1 ! strip away null termination valdata = strx(1:ll) end subroutine WriteRegVar(skey,valData,valName,ValLen,ierr) use ifwin; implicit none character*(*),intent(inout)::skey character*(*),intent(inout)::valdata character*(*),intent(inout)::valName integer*4, intent(in) :: valLen integer*4, intent(out):: ierr character*255 subKey, vname integer*4 regCallStat, mainKey, hKey, l1, l2, valType,hNewOrOld ierr = 0; mainKey= HKEY_LOCAL_MACHINE; subkey = skey valType=REG_SZ regCallStat=RegCreateKeyEx(mainKey, loc(subKey), 0,'REG_SZ'C,REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, loc(hKey),loc(hNewOrOld)) if(regCallStat) return regCallStat=RegSetValueEx(hKey, valName, 0, valType, loc(valData), valLen) if(regCallStat) ierr=-1 return end

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page