|
.S.Rod. wrote:
You've also got a merge module (.msm) to play with.
Yes, but if you include the merge module it will fail to build.
"ERROR: dotNETFXRedist_x86_enu.msm must not be used to redistribute the .NET Framework. Please exclude this merge module."
For some unknown reason MS decided they wouldn't let you include it in a setup project. I would think that defeats the purpose of having it in the first place; perhaps its for detected dependencies (mscorlib, etc).
James
"The elastic retreat rings the close of play as the last wave uncovers
the newfangled way.
But your new shoes are worn at the heels and
your suntan does rapidly peel and
your wise men don't know how it feels to be thick as a brick."
"Thick as a Brick" from Thick as a Brick, Jethro Tull 1972
|
|
|
|
|
I have this function exported in a Windows API DLL written in C:
TESTECS_API int fnTeste(char* pOutput)
{
char buffer[] = "0000MENSAGEM DE TESTE ";
memcpy(pOutput, buffer, sizeof(buffer));
return 0;
}
I need to call this function from a managed C# code, passing a structure as the char* parameter. The parameter cosists of a set of strings, each one representing a piece of that BIG string that is being copied to the strucutre in the unmanaged DLL.
Here is how I defined the code to call the DLL in managed code:
[StructLayout(LayoutKind.Sequential , CharSet=CharSet.Ansi)]
public struct Resposta {
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=2)] public String FIELD1;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=2)] public String FIELD2;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=20)] public String Mensagem;
}
public class Win32API {
[DllImport("testecs.Dll")]
public static extern void fnTeste( ref Resposta r);
}
public class App
{
public static void Main()
{
Resposta r = new Resposta();
Win32API.fnTeste(ref r);
Console.WriteLine(r.FIELD1);
Console.WriteLine(r.FIELD2);
Console.WriteLine(r.Mensagem);
}
}
The result that comes out of this program is:
0
0
MENSAGEM DE TESTE
The result I´m expeting is:
00
00
MENSAGEM DE TESTE
The problem is that the marshaller is putting an \0 in the end of each string of the strucutre, even if I state that is a ByValTStr and implicit tells its size. Does anyone know how to "automatically" remove te zero terminator during the marshalling process, so that I get the expected result ? Does anyone know any other method that I can use to solve this problem ?
thanks in advance
Mauricio Ritter - Brazil
Sonorking now: 100.13560 MRitter
"Th@ langwagje is screwed! It has if's but no end if's!! Stupid php cant even do butuns on forms! VISHAUL BASICS ARE THE FUTSHURE!" - Simon Walton
|
|
|
|
|
|
Hi all,
is there any Grid Control free sources usable with C# for Windows CE ? Something like Dundas grid. As I might understand even DataGrid control is not supported under CE.NET in VS 7, so any info/links will be strongly appreciated.
Thanks in advance,
Alex Gusev
alex.gusev@retalix.com
|
|
|
|
|
Alex Gusev wrote:
As I might understand even DataGrid control is not supported under CE.NET in VS 7
Looking at the documentation included with the final beta of VS.NET 2003 the DataGrid lists the Compact Framework as a supported platform.
I know next to nothing about the .NET CF though so they could be meaning something else by that.
James
"The elastic retreat rings the close of play as the last wave uncovers
the newfangled way.
But your new shoes are worn at the heels and
your suntan does rapidly peel and
your wise men don't know how it feels to be thick as a brick."
"Thick as a Brick" from Thick as a Brick, Jethro Tull 1972
|
|
|
|
|
May I ask you which build do you use?
I have VS.NET codename Everett Enterprise Architect
MS Development Environment 2003 beta Version 7.1.22.15 and
MS .NET Framework 1.1 Version 1.1.4322
That's what's written in About... box
Unfortunately DataGrid doesn't list .NET CF as supported platform
Alex Gusev
|
|
|
|
|
Alex Gusev wrote:
VS.NET codename Everett Enterprise Architect
MS Development Environment 2003 beta Version 7.1.22.15 and
MS .NET Framework 1.1 Version 1.1.4322
Microsoft Development Environment 2003 Beta Version 7.1.2292
Microsoft .NET Framework 1.1 Version 1.1.4322
At the bottom of all the .NET framework docs I have this disclaimer:
"Syntax based on .NET Framework version 1.1.4322.
November 15, 2002."
James
"The elastic retreat rings the close of play as the last wave uncovers
the newfangled way.
But your new shoes are worn at the heels and
your suntan does rapidly peel and
your wise men don't know how it feels to be thick as a brick."
"Thick as a Brick" from Thick as a Brick, Jethro Tull 1972
|
|
|
|
|
James T. Johnson wrote:
Syntax based on .NET Framework version 1.1.4322.
November 15, 2002."
Do they change syntax every 15 days...what a nightmare
Kannan
|
|
|
|
|
No. As far as I know nothing has changed syntax wise since the 1.1 changes were released back when it first came out in public beta (I want to say in October).
For the most part 1.1 is a ton of bug fixes and a few added features, most security wise.
The one that I that I wish was in 1.0 but isn't is a few tags in the configuration file schema. In 1.1 it only takes one tag to specify what version of the runtime you want to use. But for your 1.1 app to work on a 1.0 only system you need one section of tags for every core assembly your app references.
The configuration file can be generated by a wizard, so the job of creating it is easy; but I wouldn't entrust users to create the file themselves.
James
"The elastic retreat rings the close of play as the last wave uncovers
the newfangled way.
But your new shoes are worn at the heels and
your suntan does rapidly peel and
your wise men don't know how it feels to be thick as a brick."
"Thick as a Brick" from Thick as a Brick, Jethro Tull 1972
|
|
|
|
|
I can see that two or three years from now, with multiple run-times, large systems can be affected with these kind of settings along with policy settings for individual applications etc, something equivalent of dll hell, although this is entirely a differnt beast. Its like while trying to solve one problem, we always end up with differnt kind of problem.
Kannan
|
|
|
|
|
:(dear all :
I'm a beginner.
Does anybody know of a simple way to disable tooltips on the fields in the preview window of a Crystal report ?
Vicky Cao
|
|
|
|
|
Can anybody tell me how can create a voice software just like IBM Via Voice in an Arabic language using C#?
Jassim Rahma
|
|
|
|
|
The closest I can think of is speech sdk[^] from MS
Hope this helps
Kannan
|
|
|
|
|
Do we have something like CreateProcessWithLogonW in .NET?I want to create process as another user.
Mazy
"And the carpet needs a haircut, and the spotlight looks like a prison break
And the telephone's out of cigarettes, and the balcony is on the make
And the piano has been drinking, the piano has been drinking...not me...not me-Tom Waits
|
|
|
|
|
Hi,
I'm just trying to build a custom control (composite). Say I've put a ListView on my custom control form. How can I forward for example the ItemCheck event so that a user of my control can actually write an event handler for it?
Is there a better (easier) way then defining a new delegate + event, etc.?
Thanks in advance!
Matthias
In theory, there is no difference between theory and practice. In practice, however, there is.
(unknown author)
|
|
|
|
|
I've been using the IE WebBrowser control in one of my apps, but I recently discovered that Mozilla has an ActiveX interface that matches IE's (http://www.iol.ie/~locka/mozilla/mozilla.htm).
Though, when I try to use aximp.exe on mozctlx.dll, it gives me an error. I managed to use it on mozctl.dll and import it into my app, but my app crashes if I try to use the Navigate() method.
Has anyone tried any of this?
|
|
|
|
|
There seems to be something that aximp expects at some point, while other ActiveX tools (such as the ActiveX test container from MSDEV) are totally ok with that control. (at least if you create a /res folder in the mozilla install folder, and create a fake mozilla.html page in it).
From what I remember, we have the source code for aximp.exe in the VS.NET redistribution. I highly encourage you to rebuild the code and put a breakpoint on it.
I don't have VS.NET at work at the mo, but I'll check it out tonight (most probably).
[edit] interim update : the aximp.exe tool is just a PE wrapper for the .NET System.Windows.Forms.Design.Aximporter class, where all methods are exposed, including "GenerateFromFile(FileInfo)", which is according to me what you end up with when you use the cmdline. Isolation is going to proceed until I probably find the issue, later tonight.[/edit]
[edit #2] I first thought there was a bug in aximp.exe, but now I don't think so anymore. In fact, I took the type library from mozctlx.dll and couldn't even recompile it without modifying some stuff inside. In short, mozctlx.dll as distributed in the Mozilla package does not comply to standard type libraries and MIDL compilation. I am afraid you'll have to get the source code from mozilla CVS, and recompile the whole activex stuff, after you made slight modifications in it.[/edit #2]
|
|
|
|
|
Wow, that's a little over my head. Thanks for checking into it though.
I didn't realize you made edits, I was watching my email for responses to this...
|
|
|
|
|
Is it possible to create a .mdb file with c# without Access being installed? I'm trying to make a program that will create its own dbase file if/when the dbase gets deleted accidently or by clicking a button.
If it'a possible, any example code or places I should be looking for more info?
|
|
|
|
|
You would have to use interop and the Microsoft ActiveX Data Objects Extensions for Data Definition Language and Security (ADOX) To do this, since MS Access sql syntax does not support "create database". IMO a better alternative is to just include a small empty database as a template, and use filecopy to create the starting database (faster, too...). If your schema is constant, you can even pre-build all empty tables and queries, saving a good deal of 'one time' code in your application.
Some ideas are so stupid that only an intellectual could have thought of them - George Orwell
|
|
|
|
|
Yes, after reading the other replies I think that is much easier . Would it be possible to include this templated .mdb file as a resource in the app? Basically what I'm after is a single .exe file as the final result as this app would be copied rather than installed, and with the technical level of my clients, a single file is the easiest option.
|
|
|
|
|
I haven't tried that, but it should work. Just create a new empty file and then copy the resource bytes to it with a BinaryWriter..bytes is bytes
Some ideas are so stupid that only an intellectual could have thought of them - George Orwell
|
|
|
|
|
Thanks, I'll give that a go
|
|
|
|
|
Let me point you to "Programming OLEDB with C#" - http://www.manning.com/dotnetbooks/csharpprimer/sql_to_access.html
|
|
|
|
|
like I said - one must use ADOX to create an access database programatically.
Some ideas are so stupid that only an intellectual could have thought of them - George Orwell
|
|
|
|